SDL 显示图片
来源:
http://adolfans.github.io/sdltutorialcn/ (中文教程)
http://www.willusher.io/pages/sdl2/ (英文教程)
环境:SDL2 + VC++2015
下面的代码将打开一个窗口显示hello.bmp
1 #include <iostream>
2 #include <SDL.h>
3
4 int main(int argc, char** argv)
5 {
6 //初始化SDL
7 if (SDL_Init(SDL_INIT_VIDEO) != 0)
8 {
9 std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
10 return 1;
11 }
12
13 //创建窗口
14 SDL_Window *win = nullptr;
15 win = SDL_CreateWindow("Hello World!",
16 SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
17 640, 480, SDL_WINDOW_SHOWN);
18 if (win == nullptr)
19 {
20 std::cout << SDL_GetError() << std::endl;
21 return 1;
22 }
23
24 //创建渲染器
25 SDL_Renderer *ren = nullptr;
26 ren = SDL_CreateRenderer(win, -1,
27 SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
28 if (ren == nullptr)
29 {
30 std::cout << SDL_GetError() << std::endl;
31 return 1;
32 }
33
34 //创建表面
35 SDL_Surface *bmp = nullptr;
36 bmp = SDL_LoadBMP("hello.bmp");
37 if (bmp == nullptr) {
38 std::cout << SDL_GetError() << std::endl;
39 return 1;
40 }
41
42 //创建材质
43 SDL_Texture *tex = nullptr;
44 tex = SDL_CreateTextureFromSurface(ren, bmp);
45 SDL_FreeSurface(bmp);
46
47 //清空渲染器
48 SDL_RenderClear(ren);
49 //将材质复制到渲染器
50 SDL_RenderCopy(ren, tex, NULL, NULL);
51 //呈现渲染器
52 SDL_RenderPresent(ren);
53 //窗口延时
54 SDL_Delay(2000);
55
56 //释放资源
57 SDL_DestroyTexture(tex);
58 SDL_DestroyRenderer(ren);
59 SDL_DestroyWindow(win);
60 //退出SDL
61 SDL_Quit();
62
63 return 0;
64 }
https://i-beta.cnblogs.com/posts/edit
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人