本文通过surface操作:
#include <SDL2/SDL.h>
#include <stdio.h>
SDL_Window* window = NULL;
SDL_Surface* surface = NULL;
#define WINDOW_WIDTH 1000
#define WINDOW_HEIGHT 800
void init()
{
SDL_Init(SDL_INIT_VIDEO);
window = SDL_CreateWindow("SDL",
100, // x
100, // y
WINDOW_WIDTH, // w
WINDOW_HEIGHT, // h
SDL_WINDOW_SHOWN);
surface = SDL_GetWindowSurface(window);
}
int main()
{
init();
//锁定surface
SDL_LockSurface(surface);
//生成一种颜色
Uint32 color = SDL_MapRGB(surface->format, 0xff, 0, 0);
//获取surface像素点集操作地址
Uint32* pixel = (Uint32*)surface->pixels;
int i;
//一个像素4个字节,要除以4
//for(i = 0; i < surface->pitch / 4 * 100; i++)
for(i = 100*640 ; i < 101*640;i++)
{
pixel[i] = color;
}
pixel[120*640+120] = color;
printf("i = %d\n",i);
SDL_UnlockSurface(surface);
//显示
SDL_UpdateWindowSurface(window);
SDL_Delay(5*1000);
SDL_FreeSurface(surface);
SDL_Quit();
}

本文提供了一个使用SDL库进行Surface操作的示例代码。该示例演示了如何初始化SDL,创建窗口,锁定Surface,设置像素颜色,并更新窗口表面以显示结果。
1万+

被折叠的 条评论
为什么被折叠?



