44 /* This is the read/write operation structure -- very basic */ |
44 /* This is the read/write operation structure -- very basic */ |
45 |
45 |
46 typedef struct SDL_RWops |
46 typedef struct SDL_RWops |
47 { |
47 { |
48 /* Seek to 'offset' relative to whence, one of stdio's whence values: |
48 /* Seek to 'offset' relative to whence, one of stdio's whence values: |
49 SEEK_SET, SEEK_CUR, SEEK_END |
49 RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END |
50 Returns the final offset in the data source. |
50 Returns the final offset in the data source. |
51 */ |
51 */ |
52 int (SDLCALL * seek) (struct SDL_RWops * context, int offset, int whence); |
52 long (SDLCALL * seek) (struct SDL_RWops * context, long offset, |
|
53 int whence); |
53 |
54 |
54 /* Read up to 'num' objects each of size 'objsize' from the data |
55 /* Read up to 'num' objects each of size 'objsize' from the data |
55 source to the area pointed at by 'ptr'. |
56 source to the area pointed at by 'ptr'. |
56 Returns the number of objects read, or -1 if the read failed. |
57 Returns the number of objects read, or 0 at error or end of file. |
57 */ |
58 */ |
58 int (SDLCALL * read) (struct SDL_RWops * context, void *ptr, int size, |
59 size_t(SDLCALL * read) (struct SDL_RWops * context, void *ptr, |
59 int maxnum); |
60 size_t size, size_t maxnum); |
60 |
61 |
61 /* Write exactly 'num' objects each of size 'objsize' from the area |
62 /* Write exactly 'num' objects each of size 'objsize' from the area |
62 pointed at by 'ptr' to data source. |
63 pointed at by 'ptr' to data source. |
63 Returns 'num', or -1 if the write failed. |
64 Returns the number of objects written, or 0 at error or end of file. |
64 */ |
65 */ |
65 int (SDLCALL * write) (struct SDL_RWops * context, const void *ptr, |
66 size_t(SDLCALL * write) (struct SDL_RWops * context, const void *ptr, |
66 int size, int num); |
67 size_t size, size_t num); |
67 |
68 |
68 /* Close and free an allocated SDL_FSops structure */ |
69 /* Close and free an allocated SDL_RWops structure. |
|
70 Returns 0 if successful or -1 on write error when flushing data. |
|
71 */ |
69 int (SDLCALL * close) (struct SDL_RWops * context); |
72 int (SDLCALL * close) (struct SDL_RWops * context); |
70 |
73 |
71 Uint32 type; |
74 Uint32 type; |
72 union |
75 union |
73 { |
76 { |
74 #ifdef __WIN32__ |
77 #ifdef __WIN32__ |
75 struct |
78 struct |
76 { |
79 { |
77 int append; |
80 SDL_bool append; |
78 void *h; |
81 void *h; |
79 struct |
82 struct |
80 { |
83 { |
81 void *data; |
84 void *data; |
82 int size; |
85 int size; |