#include <SDL2/SDL.h>
int main()
{
SDL_Window *window=NULL;
SDL_Renderer *render=NULL;
SDL_Texture *texture=NULL;
SDL_Event event;
SDL_Rect rect;
int quit=0;
//初始化环境
SDL_Init(0);
//创建一个窗口
window = SDL_CreateWindow("test",200,200,900,600,SDL_WINDOW_SHOWN);
if(!window)
{
}
//创建一个渲染器
render = SDL_CreateRenderer(window,-1,0);
if(!render)
{
}
/*
//设置背景色
SDL_SetRenderDrawColor(render,255,0,0,30);
//SDL_RenderDrawLine(render,300,300,600,600);
SDL_RenderClear(render);
SDL_RenderPresent(render);
// SDL_Delay(5000);
//event.window
*/
/*
视频渲染流程:
将一幅图像的rgb数据 经过抽象为一个纹理数据 然后发送数据至显卡,然后显卡根据纹理还原一幅图像数据,最后发送给显示器显示出来
*/
//创建一个文理
texture = SDL_CreateTexture(render,
SDL_PIXELFORMAT_ABGR8888,
SDL_TEXTUREACCESS_TARGET,
640,
480);
do
{
SDL_PollEvent(&event);//轮训方式
switch(event.type)
{
case SDL_QUIT:
quit=1;
break;
default:
break;
}
rect.w = 40;
rect.h = 30;
rect.x= rand()%640;
rect.y = rand()%480;
SDL_SetRenderTarget(render,texture);
SDL_SetRenderDrawColor(render,0,0,0,0);
//设置背景色 在画图中就是以背景色填充
SDL_RenderClear(render);
SDL_RenderDrawRect(render,&rect);
SDL_SetRenderDrawColor(render,255,0,0,0);
SDL_RenderFillRect(render,&rect);
//设置渲染目标
SDL_SetRenderTarget(render,NULL);
//纹理拷贝到显卡渲染
SDL_RenderCopy(render,texture,NULL,NULL);
//开始渲染图像并拷贝到显示器
SDL_RenderPresent(render);
}while(!quit);
//删除纹理
SDL_DestroyTexture(texture);
//删除渲染器
SDL_DestroyRenderer(render);
//删除窗口
SDL_DestroyWindow(window);
//卸载环境
SDL_Quit();
return 0;
}
SDL视频渲染教程
猜你喜欢
转载自blog.csdn.net/u010261063/article/details/103730557
今日推荐
周排行