|
Size: 1850
Comment: update formatting - enums, structs, the/an
|
Size: 1651
Comment: update content - w/ Sam; remove draft
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 3: | Line 3: |
| ||<tablewidth="100%" style="color: #FF0000;" :> DRAFT|| | |
| Line 22: | Line 21: |
| * | |
| Line 49: | Line 47: |
| * | |
| Line 56: | Line 54: |
| No operating system or library calls should be made between lock/unlock pairs, as critical system locks may be held during this time. |
SDL_LockSurface
Use this function to set up a surface for directly accessing the pixels.
Contents
Syntax
int SDL_LockSurface(SDL_Surface* surface)
Function Parameters
surface |
the SDL_Surface structure to be locked |
Return Value
Returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.
Code Examples
SDL_Surface* surface = NULL;
/* Assign a surface pointer to surface */
SDL_LockSurface( surface );
/* Surface is locked */
/* Direct pixel access on surface here */
SDL_LockSurface( surface );
/* More direct pixel access on surface */
SDL_UnlockSurface( surface );
/* Surface is still locked */
/* Note: In versions < 1.1.8, the surface would have been */
/* no longer locked at this stage */
SDL_UnlockSurface( surface );
/* Surface is now unlocked */
SDL_FreeSurface( surface );
surface = NULL;
Remarks
Between calls to SDL_LockSurface() / SDL_UnlockSurface(), you can write to and read from surface->pixels, using the pixel format stored in surface->format. Once you are done accessing the surface, you should use SDL_UnlockSurface() to release it.
Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates to 0, then you can read and write to the surface at any time, and the pixel format of the surface will not change.
