summaryrefslogtreecommitdiff
path: root/Build/source/libs/zziplib/zziplib-src/docs/README.SDL
blob: 641733594156aa8e3c75f16d4c9190d63ef0245b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
WARNING:
  The following instructions are outdated. 
  They refer back to 16. Dezember 2002 with zziplib version 0.10.66.
  Most things refer to MSVC which have a different README 
    (and there are msvc project files being shipped along)
  The rest is mainly an example program that you can use as a
    boilerplate in your souce code - may be just copy and use.

---------------------------------------------------------------------
16122002, Thomas.Eder@nmi.at, Using the zziplib library with SDL


PREREQUISITES

  Tested versions:
    zziplib 0.10.66 (preview), SDL 1.2.5, Win32, MSVC6

  Homepages (download)
    zziplib.sourceforge.net (zziplib-0.10.66.tar.gz)
    www.libsdl.org (SDL-devel-1.2.5a-VC6.zip)

  Also you have to get zlib, I used 
    from SDL_image-1.2.2.zip in VisualC.zip:
      zlib.lib (12.7.1998, 34674 bytes)
      zlib.h   ( 9.7.1998, 41791 bytes, 1.1.3)
      zconf.h  ( 8.7.1998,  8089 bytes)

    from SDL_image-devel-1.2.2-VC6.zip:
      zlib.dll ( 5.4.2001, 53760 bytes, 1.1.3.1)

  Maybe you should get the latest version (currently 1.1.4) from
    http://gnuwin32.sourceforge.net/install.html
      (see notes at end of page!)


CREATING zzlib.dll/zzlib.lib

  Copy your versions of zlib.lib, zlib.h and zconf.h to the zzlib 
    directory.
  In MSVC (start zziplib.dsw)
    Add zlib.lib to the files for the zziplib_DLL project.
    Add ZLIB_DLL to the preprocessor definitions.

  Set the active project and the active configuration to create zziplib.dll 
  and zziplib.lib (I created and used the release version).


USING zzlib WITH SDL

  Include/add the following files to your SDL-Project
  (put them in proper directories, etc.):

  Header files:
    zconf.h
    zlib.h
    zzip.h
    zzip-conf.h
    zzip-io.h
    zziplib.h
    zzip-msvc.h
    zzip-stdint.h

  Libraries:
    zlib.lib
    zziplib.lib

  DLLs:
    zlib.dll
    zziplib.dll

  you may also want to use 
    SDL_rwops_zzip.c
    SDL_rwops_zzip.h


  For compiling it should be sufficient to use
    #include <zziplib.h> 
  in the files where you use zziplib-functions.


NOTE

  It is possible to use both original (unzipped) and zipped versions of files,
  and zziplib will take one of them (depending on the modes when calling 
  zziplib).

  But this didn't work for all of my original files, so I suggest using zipped
  files only (and remove the original unzipped files, so zziplib doesn't try to
  open the original version).


HINT

  When opening many files from a zip, its faster to open the zip-directory
  only once, and not for every file access. You may want to modify 
  SDL_rwops_zzip for this to get code like:


    SDL_Surface* image;
    SDL_RWops*   rw;
    SDL_Surface* temp1 = NULL;  //default > NULL > error
    SDL_Surface* temp2 = NULL;  //default > NULL > error

      //last param may be used for err return
    ZZIP_DIR* zzipdir = zzip_dir_open( "figures.zip", NULL ); 

    ZZIP_FILE* zfile = zzip_file_open(zzipdir, "f1.bmp", ZZIP_CASELESS);

    if (zfile)
    {
        rw = SDL_RWFromZZIP(zfile);  //modified version
        if (rw)
        {
            temp1 = IMG_Load_RW(rw, 0);
            SDL_FreeRW(rw);
        }
        int zret = zzip_file_close( zfile );
    }

    zfile = zzip_file_open(zzipdir, "f2.bmp", ZZIP_CASELESS);
    if (zfile)
    {
        rw = SDL_RWFromZZIP(zfile);  //modified version
        if (rw)
        {
            temp2 = IMG_Load_RW(rw, 0);
            SDL_FreeRW(rw);
        }
        int zret = zzip_file_close( zfile );
    }

    //.. etc

    zzip_dir_close( zzipdir );