2014-12-19 9 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

가 어떻게이 문제를 해결할 수 있습니까?

마르코

답변

1

내가 그 렌더링 작업 확인을 보이는 나를 위해 같은 의견에 의해 당신에게 더 많은 정보를 부탁드립니다. 그러나 충분한 평판이 없기 때문에 의견을 쓸 수 없으며, 대답을하지 않으면 충분한 평판을 얻지 못하므로 어쨌든 "대답"하고 있으며 사이트 중재자가 어느 시점에서 다시 생각해 보길 바랍니다. 한계/요구 사항에 대한 자세한 정보를 묻는 요구 사항 (답변을 드릴 수있는 충분한 평판을 얻기 위해)

마찬가지로, 나를 위해 그것은 렌더링 작업을 확인합니다. "간격"은 글꼴 메트릭에서 비롯됩니다. 소개 TTF 글꼴 메트릭의 일종은 예를 들어 찾을 수 있습니다. 여기 :

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

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

난 그게 가능하다면 모르겠지만, 당신은로드 후 측정을 조정 고려하는 것이 좋습니다, 또는 문제가 해결되지 않는 경우에 대한 글꼴 더 적합 사용 너의 목적.