[SDL] SDL_ttf Font Rendering - SDL 텍스트 폰트 렌더링
C, C++ 2024. 1. 23. 14:54 |반응형
아래 링크에서 SDL_ttf를 다운받아 설치하고 텍스트를 출력해 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#include <iostream>
#include "SDL.h"
#include "SDL_ttf.h"
int main(int argc, char* argv[]) {
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf("SDL Initialization Fail: %s\n", SDL_GetError());
return -1;
}
SDL_Window* window = SDL_CreateWindow("Hello World", SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_RESIZABLE);
if (!window) {
printf("SDL_CreateWindow Error: %s\n", SDL_GetError());
SDL_Quit();
return -1;
}
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
if (TTF_Init() < 0) {
// Initialize SDL_ttf.
printf("SDL TTF Initialization Failed: %s\n", TTF_GetError());
return -1;
}
TTF_Font* font = TTF_OpenFont("C:\\Windows\\Fonts\\arial.ttf", 30);
// Create a font from a file, using a specified point size.
if (font == NULL) {
printf("Could not open font! (%s)\n", TTF_GetError());
return -1;
}
SDL_Color textColor = { 255, 0, 0 };
SDL_Surface* textSurface = TTF_RenderText_Blended(font, "Hello World!", textColor);
// Render Latin1 text at high quality to a new ARGB surface.
SDL_Texture* textTexture = SDL_CreateTextureFromSurface(renderer, textSurface);
// Create a texture from an existing surface.
SDL_FreeSurface(textSurface);
// Free an RGB surface.
SDL_Rect destRect = { 10, 10, textSurface->w, textSurface->h };
TTF_CloseFont(font);
// Dispose of a previously-created font.
SDL_Event event;
bool quit = false;
while (!quit) {
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
quit = true;
break;
case SDL_KEYDOWN:
printf("Key pressed: %s\n", SDL_GetKeyName(event.key.keysym.sym));
if (event.key.keysym.sym == SDLK_ESCAPE)
quit = true;
break;
default:
break;
}
}
SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE);
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, textTexture, NULL, &destRect);
// Copy a portion of the texture to the current rendering target.
SDL_RenderPresent(renderer);
}
TTF_Quit();
// Deinitialize SDL_ttf.
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
|
소스를 입력하고 빌드한다.
※ 참고
반응형
'C, C++' 카테고리의 다른 글
[SDL] SDL Image Color Key - SDL 이미지 컬러키 (0) | 2024.01.24 |
---|---|
[SDL] SDL_image Image Rendering - SDL 이미지 렌더링 (0) | 2024.01.23 |
[SDL] Simple DirectMedia Layer Setup and Getting Started - SDL 설정 및 초기화 (0) | 2024.01.22 |
Qt platform plugin error fix (0) | 2021.09.26 |
Qt6 설치 및 간단한 사용법 (0) | 2021.09.25 |