?項目創(chuàng)建步驟
?1. 使用Qt Creator創(chuàng)建一個C項目
?2. 將SDL庫文件放到源文件目錄下
?在項目pro文件中添加庫文件
win32{
INCLUDEPATH += $$PWD/SDL2-2.0.10/include
LIBS += $$PWD/SDL2-2.0.10/lib/x86/SDL2.lib
}
?使用SDL創(chuàng)建一個窗口
#include <stdio.h>
#include <SDL.h>
#undef main // 先取消main函數(shù)(因為SDL內部使用了main函數(shù))
int main()
{
// 創(chuàng)建一個SDL_VIDEO窗口
SDL_Window* window = NULL;
SDL_Init(SDL_INIT_VIDEO);
window = SDL_CreateWindow("Title",
SDL_WINDOWPOS_UNDEFINED, // 默認x y 顯示到窗口中間
SDL_WINDOWPOS_UNDEFINED,
640,
480,
SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);// 設置窗口屬性
if(!window)
{
printf("Can't create window, err:%s\n", SDL_GetError());
return 666;
}
SDL_Delay(5000); // 延遲5000ms
SDL_DestroyWindow(window); // 銷毀窗口
SDL_Quit(); // 釋放資源
return 0;
}
運行效果
?文章來源:http://www.zghlxwxcb.cn/news/detail-719466.html
SDL簡單顯示案例
#include <stdio.h>
#include <SDL.h>
#undef main
int main()
{
SDL_Window* window = NULL; // 窗口
SDL_Renderer* renderer = NULL; // 渲染器
SDL_Texture* texture = NULL; // 紋理
SDL_Init(SDL_INIT_VIDEO);
// 創(chuàng)建窗口
window = SDL_CreateWindow("Window Title",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
640,
480,
SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);
if(NULL == window)
{
printf("Create Window error: %s\n", SDL_GetError());
return -1;
}
// 創(chuàng)建渲染器(一個窗口可有多個渲染器)
renderer = SDL_CreateRenderer(window, -1, 0);
if(NULL == renderer)
{
printf("Create Renderer error: %s\n", SDL_GetError());
// 銷毀窗口,釋放資源
SDL_DestroyWindow(window);
SDL_Quit();
return -1;
}
// 基于渲染器創(chuàng)建紋理
texture = SDL_CreateTexture(renderer,
SDL_PIXELFORMAT_RGBA8888,
SDL_TEXTUREACCESS_TARGET,
640,
480);
if(NULL == texture)
{
printf("Create Texture error: %s\n", SDL_GetError());
// 銷毀渲染器 窗口 釋放資源
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return -1;
}
int showCnt = 0; // 顯示次數(shù)
int run = 1; // 循環(huán)退出條件
SDL_Rect rect; // 定義一個SDL矩形
rect.w = 50;
rect.h = 50;
while(run)
{
// 隨機rect的位置
rect.x = rand() % 600;
rect.y = rand() % 400;
// 設置渲染目標為紋理
SDL_SetRenderTarget(renderer, texture);
// 設置渲染繪制顏色
SDL_SetRenderDrawColor(renderer, 255, 0, 255, 255);
// 刷新渲染
SDL_RenderClear(renderer);
// 設置渲染繪制顏色
SDL_SetRenderDrawColor(renderer, 0, 255, 0, 255);
// 繪制矩形
SDL_RenderDrawRect(renderer, &rect);
// 繪制填充矩形
SDL_RenderFillRect(renderer, &rect);
// 恢復渲染目標為窗口
SDL_SetRenderTarget(renderer, NULL);
SDL_RenderCopy(renderer, texture, NULL, NULL);
// 顯示紋理
SDL_RenderPresent(renderer);
SDL_Delay(300);
if(showCnt++ >= 30)
run = 0;
}
// 銷毀 紋理 渲染器 窗口,釋放資源
SDL_DestroyTexture(texture);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-719466.html
到了這里,關于SDL窗口創(chuàng)建以及簡單顯示(1)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!