#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;
}