前言
Surface和Texture区别
SDL使用SDL_Surface和SDL_Texture这2种结构绘图到屏幕。
SDL_Surface包含了一个像素集合(pixels成员),它使用软件渲染(非GPU);
SDL_Textur可使用硬件加速器。
绘制
红色实心矩形
//渲染红色填充四边形 SDL_Rect fillRect = { SCREEN_WIDTH / 4, SCREEN_HEIGHT / 4, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2 }; SDL_SetRenderDrawColor( gRenderer, 0xFF, 0x00, 0x00, 0xFF ); SDL_RenderFillRect( gRenderer, &fillRect ); //更新屏幕 SDL_RenderPresent( gRenderer );
绿色空心矩形
//渲染绿色轮廓的四边形 SDL_Rect outlineRect = { SCREEN_WIDTH / 6, SCREEN_HEIGHT / 6, SCREEN_WIDTH * 2 / 3, SCREEN_HEIGHT * 2 / 3 }; SDL_SetRenderDrawColor( gRenderer, 0x00, 0xFF, 0x00, 0xFF ); SDL_RenderDrawRect( gRenderer, &outlineRect ); //更新屏幕 SDL_RenderPresent( gRenderer );
蓝色横线
SDL_SetRenderDrawColor( gRenderer, 0x00, 0x00, 0xFF, 0xFF ); SDL_RenderDrawLine( gRenderer, 0, SCREEN_HEIGHT / 2, SCREEN_WIDTH, SCREEN_HEIGHT / 2 ); //更新屏幕 SDL_RenderPresent( gRenderer );
黄点的垂直线
SDL_SetRenderDrawColor(Window::m_pRenderer.get(), 0xFF, 0xFF, 0x00, 0xFF); for (int i = 0; i < Window::SCREEN_HEIGHT; i += 4) { SDL_RenderDrawPoint(Window::m_pRenderer.get(),Window::SCREEN_WIDTH / 2, i); }
总结
SDL_RenderFillRect
绘制实心矩形
SDL_RenderDrawRect
绘制空心矩形
SDL_RenderDrawLine
绘制线条
SDL_RenderDrawPoint
绘制点