|
Size: 2143
Comment: Changed signature to match SDL_main.h.
|
Size: 1724
Comment: Rewritten
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 16: | Line 16: |
| <<Color2(green,Seems like the type for '''context''' might have changed from SDL_RWops* to struct SDL_RWops*. Which is correct?)>> |
|
| Line 19: | Line 17: |
| ||'''context'''||^a data stream containing the seek function???^|| | ||'''context'''||A pointer to an [[SDL_RWops]] structure|| |
| Line 27: | Line 25: |
| *<<BR>> | |
| Line 29: | Line 26: |
| #include <stdio.h> #include "SDL_rwops.h" int main(int argc, char *argv[]) { Sint64 length; SDL_RWops *rw=SDL_RWFromFile("myfile.bin","rb"); if(rw==NULL) { fprintf(stderr,"Couldn't open myfile.bin\n"); return(1); } /* Seek to 0 bytes from the end of the file -- i.e. the exact end of file */ length=SDL_RWseek(rw,0,SEEK_END); SDL_RWclose(rw); if(length<0) { fprintf(stderr,"Could not seek inside myfile.bin\n"); return(2); } fprintf(stderr,"myfile.bin is %d bytes long\n",length); return(0); |
SDL_RWops *rw = SDL_RWFromFile("myfile.bin","rb"); if (rw != NULL) { /* Seek to 0 bytes from the end of the file */ Sint64 length = SDL_RWseek(rw,0,SEEK_END); SDL_RWclose(rw); if (length < 0) { printf("Could not seek inside myfile.bin\n"); } else { printf("myfile.bin is %d bytes long\n",length); } |
| Line 54: | Line 37: |
| }}}<<BR>>* | }}} |
| Line 57: | Line 40: |
| *<<BR>>This is not a predefined function, just a macro that calls whatever seek function has been placed in the SDL_RWops structure.<<BR>>* [[SDL_RWseek]] seeks to '''offset''' relative to '''whence'''. <<Color2(green,Should SDL_RWseek have () like a function even though it's a macro?)>> |
This function seeks to '''offset''' relative to '''whence''' |
| Line 65: | Line 46: |
If this stream can not seek, it will return -1. SDL_RWseek is actually a macro that calls the SDL_RWops's ''''seek''' method appropriately, to simplify application development. |
SDL_RWseek
Use this function to seek within an SDL_RWops data stream.
Syntax
Sint64 SDL_RWseek(SDL_RWops* context,
Sint64 offset,
int whence)
Function Parameters
context |
A pointer to an SDL_RWops structure |
offset |
an offset in bytes, relative to whence location; can be negative |
whence |
any of RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END; see Remarks for details |
Return Value
Returns the final offset in the data stream after the seek or -1 on error.
Code Examples
SDL_RWops *rw = SDL_RWFromFile("myfile.bin","rb");
if (rw != NULL) {
/* Seek to 0 bytes from the end of the file */
Sint64 length = SDL_RWseek(rw,0,SEEK_END);
SDL_RWclose(rw);
if (length < 0) {
printf("Could not seek inside myfile.bin\n");
} else {
printf("myfile.bin is %d bytes long\n",length);
}
}
Remarks
This function seeks to offset relative to whence
whence may be any of the following values:
RW_SEEK_SET |
seek from the beginning of data |
RW_SEEK_CUR |
seek relative to current read point |
RW_SEEK_END |
seek relative to the end of data |
If this stream can not seek, it will return -1.
SDL_RWseek is actually a macro that calls the SDL_RWops's 'seek method appropriately, to simplify application development.
