1. # Demo: Show text with SDL2_ttf
  2.  
  3. from os import path
  4. import sys
  5. from ctypes import *
  6. from sdl2 import *
  7. from sdl2.sdlttf import *
  8.  
  9. # Initialize SDL2
  10. SDL_Init(SDL_INIT_VIDEO)
  11.  
  12. # Initialize SDL2_ttf
  13. TTF_Init()
  14.  
  15. # legacy mode
  16. win = SDL_CreateWindow(b'TTF',  0,0,0,0,  SDL_WINDOW_FULLSCREEN)
  17.  
  18. # OpenGL mode
  19. #win = SDL_CreateWindow(b"SDL2/OpenGL Demo",  0,0,640,480,  SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE)
  20.  
  21. # create renderer
  22. renderer = SDL_CreateRenderer(win, -1, 0)
  23.  
  24. # load TTF font
  25. font = TTF_OpenFont((path.realpath('.')+"/assets/arial.ttf").encode(), 25)
  26.  
  27. # text color: white
  28. fg = SDL_Color(255,255,255)
  29.  
  30. # bgcolor: black
  31. #bg = SDL_Color(0,0,0)
  32.  
  33. # render text into surface
  34. surface = TTF_RenderText_Solid(font, b"Hello world!", fg)
  35. #surface = TTF_RenderText_Shaded(font, b"Hello world!", fg, bg)
  36. #surface = TTF_RenderText_Blended(font, b"Hello world!", fg)
  37.  
  38. # create texture from surface
  39. texture = SDL_CreateTextureFromSurface(renderer, surface)
  40.  
  41. # get size of the text-texture
  42. texW = c_int()
  43. texH = c_int()
  44. SDL_QueryTexture(texture, None, None, byref(texW), byref(texH))
  45. dstrect = SDL_Rect(0, 0, texW, texH)
  46.  
  47. # render texture with original size
  48. SDL_RenderCopy(renderer, texture, None, dstrect)
  49. SDL_RenderPresent(renderer)
  50.  
  51. # wait 3 seconds
  52. SDL_Delay(3000)
  53.  
  54. # cleanup
  55. SDL_DestroyTexture(texture)
  56. SDL_FreeSurface(surface)
  57. TTF_CloseFont(font)
  58. SDL_DestroyRenderer(renderer)
  59. SDL_DestroyWindow(win)
  60. TTF_Quit()
  61. SDL_Quit()
  62.  
[raw code]