gpt4 book ai didi

c++ - SDL_TTF 渲染错误的地方

转载 作者:行者123 更新时间:2023-11-28 06:31:03 25 4
gpt4 key购买 nike

我使用 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;
}

这是它在屏幕上的样子: Font drawing location

我该如何解决这个问题?

马可

最佳答案

我想通过评论向您询问更多信息,就我而言,渲染工作正常。但我不能写评论,因为我没有足够的声誉,如果我不回答,我永远不会获得足够的声誉来发表评论,所以无论如何我都会“回答”并希望网站版主在某个时候重新考虑为能够回答的问题询问更多信息的限制/要求(以获得足以询问更多信息的声誉)。

如前所述,对我来说,渲染效果还不错。 “差距”来自字体指标。可以找到某种介绍 TTF 字体指标,例如这里:

https://www.libsdl.org/projects/SDL_ttf/docs/SDL_ttf_38.html

http://chanae.walon.org/pub/ttf/ttf_glyphs.htm

我不确定这是否可行,但您可能需要考虑在加载后调整指标,或者如果这不起作用,请使用更适合您目的的字体。

关于c++ - SDL_TTF 渲染错误的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27567943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com