Nintendo 3DS >> C/C++ >> SDL v1.2
Open Font
參考資訊:
1. libctru doc
2. 3ds-examples
說明:
API |
---|
int TTF_Init(void) |
TTF_Font* TTF_OpenFont(const char *file, int ptsize) |
int TTF_SizeUTF8(TTF_Font *font, const char *text, int *w, int *h) |
SDL_Surface* TTF_RenderUTF8_Solid(TTF_Font *font, const char *text, SDL_Color fg) |
void TTF_CloseFont(TTF_Font *font) |
void TTF_Quit(void) |
main.c
#include <stdio.h> #include <stdlib.h> #include <SDL.h> #include <SDL_ttf.h> int main(void) { char buf[255] = {0}; SDL_Surface *screen = NULL; SDL_Init(SDL_INIT_VIDEO); screen = SDL_SetVideoMode(400, 240, 16, SDL_HWSURFACE); TTF_Init(); TTF_Font *font = TTF_OpenFont("sdmc:/3ds/font.ttf", 30); SDL_FillRect(screen, &screen->clip_rect, SDL_MapRGB(screen->format, 0x00, 0x00, 0x00)); int w = 0, h = 0; SDL_Color col = {0, 255, 0}; SDL_Rect rt = {0, 100, 0, 0}; const char* cc = "3DS Testing"; TTF_SizeUTF8(font, cc, &w, &h); rt.x = (400 - w) / 2; SDL_Surface *msg = TTF_RenderUTF8_Solid(font, cc, col); SDL_BlitSurface(msg, NULL, screen, &rt); SDL_Flip(screen); SDL_FreeSurface(msg); SDL_Delay(3000); TTF_CloseFont(font); TTF_Quit(); SDL_Quit(); return 0; }
完成