2014-12-19 4 views
0

Я развиваю SDL на некоторое время, , но думал, что мне нужен еще один вызов. Итак, я решил нарисовать текст на экране с помощью SDL_TTF.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

Как я могу исправить эту проблему?

Marco

ответ

1

Я хотел бы задать вам более подробную информацию комментарием, так как для меня это выглядит, что рендеринг работает нормально. Но я не могу писать комментарий, потому что у меня недостаточно репутации, и я никогда не получаю достаточно репутации, чтобы комментировать, если я не отвечаю, поэтому я «отвечаю» в любом случае и надеюсь, что модераторы сайтов в какой-то момент пересмотрят лимиты/требования для получения дополнительной информации для ответов на вопросы (чтобы получить достаточную репутацию, чтобы получить дополнительную информацию).

Как сказано, для меня это выглядит так, что рендеринг работает нормально. «Разрыв» исходит из метрик шрифта. Некоторые типы метрик TTF для введения можно найти, например. здесь:

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

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

Я не уверен, если это возможно, но вы можете рассмотреть настройки метрики после загрузки, или если это не работает, используйте шрифт больше подходит для ваши цели.

 Смежные вопросы

  • Нет связанных вопросов^_^