linux环境 SDL绘制文字的实例
时间: 2023-09-02 19:06:26 浏览: 96
SDL学习的小例子
4星 · 用户满意度95%
好的,这里给出一个简单的在 Linux 环境下使用 SDL_ttf 库绘制文字的实例:
```c
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
int main(int argc, char* argv[]) {
// 初始化 SDL 和 SDL_ttf
SDL_Init(SDL_INIT_VIDEO);
TTF_Init();
// 创建窗口和渲染器
SDL_Window* window = SDL_CreateWindow("SDL_ttf Demo",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
640, 480,
SDL_WINDOW_SHOWN);
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
// 加载字体文件
TTF_Font* font = TTF_OpenFont("font.ttf", 36);
// 渲染文本
SDL_Color color = {255, 255, 255};
SDL_Surface* surface = TTF_RenderText_Solid(font, "Hello, World!", color);
SDL_Texture* texture = SDL_CreateTextureFromSurface(renderer, surface);
// 绘制文本
SDL_Rect rect = {100, 100, surface->w, surface->h};
SDL_RenderCopy(renderer, texture, NULL, &rect);
SDL_RenderPresent(renderer);
// 等待退出事件
SDL_Event event;
while (SDL_WaitEvent(&event)) {
if (event.type == SDL_QUIT) {
break;
}
}
// 销毁相关资源
SDL_DestroyTexture(texture);
SDL_FreeSurface(surface);
TTF_CloseFont(font);
TTF_Quit();
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
```
在上面的例子中,我们使用 TTF_RenderText_Solid 函数渲染文本,这个函数通常比 TTF_RenderText_Blended 函数速度更快一些,但是没有抗锯齿效果。如果你需要抗锯齿效果,可以考虑使用 TTF_RenderText_Blended 函数。
阅读全文