解读SDL_Surface结构体
sdlgui吧
全部回复
仅看楼主
level 10
twtfcu3 楼主
(本文转自http://www.dreamingwish.com/dream-2011/sdl_surface.html)
SDL_Surface 是用来进行软件位图传送的一簇像素信息集合
Uint32 flags (内部使用)
SDL_PixelFormat* format 图层的像素格式; 详见 SDL_PixelFormat (只读)
int w,h 像素级的宽度和高度 (只读)
int pitch 一行像素所占的字节数(梦维:二位的图像像素会以一维的方式来存储,每一维的长度我们必须知道) (只读)
void* pixels 指向真实像素的指针;详见讨论 (读写)
void* userdata 用户可以任意设置的指针 (读写)
int locked 用于需要锁定的图层 (内部使用)
void* locak_data 用于需要锁定的图层 (内部使用)
SDL_Rect clip_rect SDL_Rect 结构体, 位图传送(blit)时用来裁剪区域 ,可以使用SDL_SetClipRect() 来设置(只读)
SDL_BlitMap* map 向其他图层进行fast blit的映射信息 (内部使用)
int refcount 引用计数,可以被程序增加
讨论
对于大部分图层(surface),我们可以直接访问它的像素。 而以SDL_SetSurfaceRLE()函数优化过的图层,在访问它的像素之前,我们应该用SDL_LockSurface()来锁定图层,完成像素操作后,我们应该使用SDL_UnlockSurface()函数来解锁图层。
相关函数
SDL_ConvertSurface
SDL_CreateRGBSurface
SDL_CreateRGBSurfaceFrom
SDL_FillRect
SDL_FillRects
SDL_FreeSurface
SDL_GetClipRect
SDL_GetColorKey
SDL_GetSurfaceAlphaMod
SDL_GetSurfaceBlendMode
SDL_GetSurfaceColorMod
SDL_LoadBMP_RW
SDL_LockSurface
SDL_LowerBlit
SDL_MUSTLOCK
SDL_SaveBMP_RW
SDL_SetClipRect
SDL_SetColorKey
SDL_SetSurfaceAlphaMod
SDL_SetSurfaceBlendMode
SDL_SetSurfaceColorMod
SDL_SetSurfacePalette
SDL_SetSurfaceRLE
SDL_SoftStretch
SDL_UnlockSurface
SDL_UpperBlit
英文原文:SDL_Surface
2014年04月10日 05点04分 1
1