首先,需要创建一个SDL_Surface,然后使用SDL_FillRect函数将其填充为所需的颜色。 以下是一个简单的示例代码: 代码语言:c++ 复制 #include <SDL.h> #include <SDL_image.h> int main(int argc, char* argv[]) { SDL_Init(SDL_INIT_VIDEO); SDL_Surface* screen = SDL_SetVideoMode(640, 480, 32, SD...
SDL_Surface*loadSurface(std::string path){//最终优化后的图像SDL_Surface*optimizedSurface=NULL;//在指定路径加载图像SDL_Surface*loadedSurface=SDL_LoadBMP(path.c_str());if(loadedSurface==NULL){printf("Unable to load image %s! SDL Error: %s\n",path.c_str(),SDL_GetError());}else{//将表...
1 只需修改第三节课代码便可实现(增加两个函数)。如图红色标记。2 第10行:unit32是32位无符号整型数据,SDL_MapRGB是根据参数返回一个不透明的像素值。函数参数:surface->format是surface的像素格式,后面三个参数分别是r(红red)、g(绿green)、b(蓝blue)的值。3 第11行:SDL_SetColorKey是一个抠色...
rect.h=60;//Fill the surface colorSDL_FillRect(screenSurface, &rect, SDL_MapRGB(screenSurface->format,0x0f,0x0F,0xFF));//Update the surfaceSDL_UpdateWindowSurface(window);//Hack to get window to stay upSDL_Event e;boolquit =false;while(quit ==false) {while(SDL_PollEvent(&e)) {if...
SDL_Texture 与SDL_Surface相似,也是一种缓冲区。只不过它存放的不是真正的像素数据,而是存放的图像的描述信息。当渲染纹理时,SDL以这些描述信息为数据,底层通过OpenGL、D3D 或Metal操作GPU,最终绘制出与SDL_Surface一样的图形,且效率更高(因为它是GPU硬件计算的)。 看了以上的介绍,是不是对纹理有了一个清楚的认...
SDL_Surface是一种图片数据类型,包含了图片的全部像素点,以及渲染这张图片需要的其它数据。SDL_Surface使用软件渲染(software rendering),即使用CPU来完成渲染工作。Surface可以理解为表面,平面的含意,在SDL中,一段文字,一个图像或一段视频都可以通过SDL_Surface对象来输出,可以对SDL_Surface对象进行平铺,堆叠等操作。因...
简介:[笔记]音视频学习之SDL篇《十》绘制矩形,线条 前言 Surface和Texture区别 SDL使用SDL_Surface和SDL_Texture这2种结构绘图到屏幕。 SDL_Surface包含了一个像素集合(pixels成员),它使用软件渲染(非GPU); SDL_Textur可使用硬件加速器。 绘制 红色实心矩形 ...
SDL_Texture 与SDL_Surface 相似,也是一种缓冲区。只不过它存放的不是真正的像素数据,而是存放的图像的描述信息。这些描述信息通过OpenGL、D3D 或 Metal等技术操作GPU,从而绘制出与SDL_Surface一样的图形,且效率更高。 2. 使用 SDL_Texute 渲染纹理的步骤 ...
关于surface,你可以理解1个surface是一个图像。texture类似于surface,只是texture的速度更快。sdl2中用于画图的工具是renderer,window是你的画布,你可以用renderer在window上画简单几何对象(点,线,矩形),也可以用renderer在window上呈现texture(固定的图片)。以上是我个人的理解,有不对的地方请指出。 黄泉客 知名人士...
SDL使用SDL_Surface和SDL_Texture这2种结构绘图到屏幕。SDL_Surface包含了一个像素集合(pixels成员),它使用软件渲染(非GPU);SDL_Textur可使用硬件加速器。使用SDL_Texture的示例程序: #include "SDL.h" class Game2{public: Game2():m_pWindow(NULL),m_pRenderer(NULL), m_bRunning(false){}; ~Game2(){...