# Demo: Show text with SDL2_ttf
from os import path
import sys
from ctypes import *
from sdl2 import *
from sdl2.sdlttf import *
# Initialize SDL2
SDL_Init(SDL_INIT_VIDEO)
# Initialize SDL2_ttf
TTF_Init()
# legacy mode
win = SDL_CreateWindow(b'TTF', 0,0,0,0, SDL_WINDOW_FULLSCREEN)
# OpenGL mode
#win = SDL_CreateWindow(b"SDL2/OpenGL Demo", 0,0,640,480, SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE)
# create renderer
renderer = SDL_CreateRenderer(win, -1, 0)
# load TTF font
font = TTF_OpenFont((path.realpath('.')+"/assets/arial.ttf").encode(), 25)
# text color: white
fg = SDL_Color(255,255,255)
# bgcolor: black
#bg = SDL_Color(0,0,0)
# render text into surface
surface = TTF_RenderText_Solid(font, b"Hello world!", fg)
#surface = TTF_RenderText_Shaded(font, b"Hello world!", fg, bg)
#surface = TTF_RenderText_Blended(font, b"Hello world!", fg)
# create texture from surface
texture = SDL_CreateTextureFromSurface(renderer, surface)
# get size of the text-texture
texW = c_int()
texH = c_int()
SDL_QueryTexture(texture, None, None, byref(texW), byref(texH))
dstrect = SDL_Rect(0, 0, texW, texH)
# render texture with original size
SDL_RenderCopy(renderer, texture, None, dstrect)
SDL_RenderPresent(renderer)
# wait 3 seconds
SDL_Delay(3000)
# cleanup
SDL_DestroyTexture(texture)
SDL_FreeSurface(surface)
TTF_CloseFont(font)
SDL_DestroyRenderer(renderer)
SDL_DestroyWindow(win)
TTF_Quit()
SDL_Quit()