在SDL中,要清除SDL_Surface并替换为另一个,可以使用SDL_FillRect函数来实现。首先,需要创建一个SDL_Surface,然后使用SDL_FillRect函数将其填充为所需的颜色。...
一、绘图部分 SDL_Surface是一种图片数据类型,包含了图片的全部像素点,以及渲染这张图片需要的其它数据。SDL_Surface使用软件渲染(software rendering),即使用CPU来完成渲染工作。Surface可以理解为表面,平面的含意,在SDL中,一段文字,一个图像或一段视频都可以通过SDL_Surface对象来输出,可以对SDL_Surface对象进行平铺,...
因为保证了只建立一个screen surface,并且在创建对象的时候载入了SDL_Init(),所以,如果析构函数中使用SDL_Quit(),则可以在手动调用析构函数或者程序结束的时候调用SDL_Quit()了。 方法point()返回对象中的pScreen,其实就是SDL_Surface结构的指针。因为SDL库是C风格的,所以,直接使用指针的函数很多。 方法flip()用...
一、渲染阶段。在该阶段,用户可以画各种图形渲染到SDL_Surface或SDL_Texture 中; 二、显示阶段。参SDL_Texture为数据,通过OpenGL操作GPU,最终将 SDL_Surfce 或SDL_Texture中的数据输出到显示器上。 通过上面的介绍,我们就将 SDL_Window、SDL_Render、SDL_Surface与 SDL_Texture之间的关系梳理清楚了,下面我们来看一...
SDL_Texture 与SDL_Surface相似,也是一种缓冲区。只不过它存放的不是真正的像素数据,而是存放的图像的描述信息。当渲染纹理时,SDL以这些描述信息为数据,底层通过OpenGL、D3D 或 Metal操作GPU,最终绘制出与SDL_Surface一样的图形,且效率更高(因为它是GPU硬件计算的)。
1.3:screen surface的类方法。 intScreenSurface::screenNum=0; 首先为静态变量附初值。 ScreenSurface::ScreenSurface(): width(640), height(480), bpp(32), flags(0) { if( screenNum>0) throw"DONOT create more than ONE screen!"; if( SDL_Init(SDL_INIT_VIDEO<0) ) ...
2 第10行:unit32是32位无符号整型数据,SDL_MapRGB是根据参数返回一个不透明的像素值。函数参数:surface->format是surface的像素格式,后面三个参数分别是r(红red)、g(绿green)、b(蓝blue)的值。3 第11行:SDL_SetColorKey是一个抠色函数,把某个指定的像素变透明。函数参数:SDL_TRUE决定抠色,相反...
当一个Surface复制到另外一个Surface上时候,Color Key指定了源Surface的透明色为该颜色值。如果在SDL.NET的Surface上给TransparentColor设置了值,则该颜色即为透明色,当该Surface Blit到另外的一个Surface上时,源Surface对应的该颜色将会被忽略掉(即产生透明效果)。
一、渲染阶段。在该阶段,用户可以画各种图形渲染到SDL_Surface或SDL_Texture 中; 二、显示阶段。参SDL_Texture为数据,通过OpenGL操作GPU,最终将 SDL_Surfce 或SDL_Texture中的数据输出到显示器上。 通过上面的介绍,我们就将 SDL_Window、SDL_Render、SDL_Surface与 SDL_Texture之间的关系梳理清楚了,下面我们来看一...
直接写入线性的图像帧缓冲(framebuffer)。用颜色键值(colorkey)或者alpha混合属性创建surface。Surface的blit能自动的转化为目标格式。blit是优化过的,并能使用硬件加速。x86平台上有针对MMX优化过的blit。硬件加速的blit和fill(填充)操作,如果硬件支持的话。这个功能在音视频显示,开发领域显得很重要。