我已经使用 SDL 进行了一段时间的开发,但我认为我需要另一个挑战。所以我决定使用 SDL_TTF 在屏幕上绘制一些文本。
我尝试在 0,0 处渲染文本,但它略低于屏幕边框。所以这意味着它没有在 0,0 处完全渲染。
此代码仅用于测试目的。
这是我当时用于测试的代码:
#include <SDL.h>
#include <SDL_ttf.h>
#include <iostream>
int main(int argc, char* args[])
{
SDL_Texture* tex;
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window *win = SDL_CreateWindow("Font drawing test", 100, 100, 640, 480, SDL_WINDOW_SHOWN);
SDL_Renderer *ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
TTF_Init();
while (true)
{
SDL_RenderClear(ren);
TTF_Font* font = TTF_OpenFont("./Resources/test.ttf", 72);
SDL_Surface *surf = TTF_RenderText_Blended(font, "Test", SDL_Color{ 255, 255, 255, 255 });
tex = SDL_CreateTextureFromSurface(ren, surf);
SDL_RenderCopy(ren, tex, NULL, new SDL_Rect{ 0, 0, 100, 100 });
SDL_RenderPresent(ren);
SDL_DestroyTexture(tex);
SDL_FreeSurface(surf);
TTF_CloseFont(font);
}
SDL_DestroyTexture(tex);
SDL_DestroyRenderer(ren);
SDL_DestroyWindow(win);
SDL_Quit();
return 0;
}
这就是它在屏幕上的样子:
我该如何解决这个问题?
马可