141 lines
7.8 KiB
Python
141 lines
7.8 KiB
Python
import os
|
|
from ctypes import Structure, POINTER, c_int, c_long, c_char_p
|
|
from .dll import DLL, nullfunc
|
|
from .version import SDL_version
|
|
from .rwops import SDL_RWops
|
|
from .stdinc import Uint16, Uint32
|
|
from .pixels import SDL_Color
|
|
from .surface import SDL_Surface
|
|
from .error import SDL_GetError, SDL_SetError
|
|
|
|
__all__ = ["get_dll_file", "SDL_TTF_MAJOR_VERSION", "SDL_TTF_MINOR_VERSION",
|
|
"SDL_TTF_PATCHLEVEL", "SDL_TTF_VERSION", "TTF_MAJOR_VERSION",
|
|
"TTF_MINOR_VERSION", "TTF_PATCHLEVEL", "TTF_VERSION",
|
|
"TTF_Linked_Version", "UNICODE_BOM_NATIVE", "UNICODE_BOM_SWAPPED",
|
|
"TTF_ByteSwappedUNICODE", "TTF_Font", "TTF_Init", "TTF_OpenFont",
|
|
"TTF_OpenFontIndex", "TTF_OpenFontRW", "TTF_OpenFontIndexRW",
|
|
"TTF_STYLE_NORMAL", "TTF_STYLE_BOLD", "TTF_STYLE_ITALIC",
|
|
"TTF_STYLE_UNDERLINE", "TTF_STYLE_STRIKETHROUGH", "TTF_GetFontStyle",
|
|
"TTF_SetFontStyle", "TTF_GetFontOutline", "TTF_SetFontOutline",
|
|
"TTF_HINTING_NORMAL", "TTF_HINTING_LIGHT", "TTF_HINTING_MONO",
|
|
"TTF_HINTING_NONE", "TTF_GetFontHinting", "TTF_SetFontHinting",
|
|
"TTF_FontHeight", "TTF_FontAscent", "TTF_FontDescent",
|
|
"TTF_FontLineSkip", "TTF_GetFontKerning", "TTF_SetFontKerning",
|
|
"TTF_FontFaces", "TTF_FontFaceIsFixedWidth", "TTF_FontFaceFamilyName",
|
|
"TTF_FontFaceStyleName", "TTF_GlyphIsProvided", "TTF_GlyphMetrics",
|
|
"TTF_SizeText", "TTF_SizeUTF8", "TTF_SizeUNICODE",
|
|
"TTF_RenderText_Solid", "TTF_RenderUTF8_Solid",
|
|
"TTF_RenderUNICODE_Solid", "TTF_RenderGlyph_Solid",
|
|
"TTF_RenderText_Shaded", "TTF_RenderUTF8_Shaded",
|
|
"TTF_RenderUNICODE_Shaded", "TTF_RenderGlyph_Shaded",
|
|
"TTF_RenderText_Blended", "TTF_RenderUTF8_Blended",
|
|
"TTF_RenderUNICODE_Blended", "TTF_RenderText_Blended_Wrapped",
|
|
"TTF_RenderUTF8_Blended_Wrapped", "TTF_RenderUNICODE_Blended_Wrapped",
|
|
"TTF_RenderGlyph_Blended", "TTF_RenderText", "TTF_RenderUTF",
|
|
"TTF_RenderUNICODE", "TTF_CloseFont", "TTF_Quit", "TTF_WasInit",
|
|
"TTF_GetFontKerningSize", "TTF_GetFontKerningSizeGlyphs",
|
|
"TTF_SetError", "TTF_GetError"
|
|
]
|
|
|
|
try:
|
|
dll = DLL("SDL2_ttf", ["SDL2_ttf", "SDL2_ttf-2.0"],
|
|
os.getenv("PYSDL2_DLL_PATH"))
|
|
except RuntimeError as exc:
|
|
raise ImportError(exc)
|
|
|
|
def get_dll_file():
|
|
"""Gets the file name of the loaded SDL2_ttf library."""
|
|
return dll.libfile
|
|
|
|
_bind = dll.bind_function
|
|
|
|
SDL_TTF_MAJOR_VERSION = 2
|
|
SDL_TTF_MINOR_VERSION = 0
|
|
SDL_TTF_PATCHLEVEL = 14
|
|
|
|
|
|
def SDL_TTF_VERSION(x):
|
|
x.major = SDL_TTF_MAJOR_VERSION
|
|
x.minor = SDL_TTF_MINOR_VERSION
|
|
x.patch = SDL_TTF_PATCHLEVEL
|
|
|
|
TTF_MAJOR_VERSION = SDL_TTF_MAJOR_VERSION
|
|
TTF_MINOR_VERSION = SDL_TTF_MINOR_VERSION
|
|
TTF_PATCHLEVEL = SDL_TTF_PATCHLEVEL
|
|
TTF_VERSION = SDL_TTF_VERSION
|
|
|
|
TTF_Linked_Version = _bind("TTF_Linked_Version", None, POINTER(SDL_version))
|
|
UNICODE_BOM_NATIVE = 0xFEFF
|
|
UNICODE_BOM_SWAPPED = 0xFFFE
|
|
|
|
TTF_ByteSwappedUNICODE = _bind("TTF_ByteSwappedUNICODE", [c_int])
|
|
|
|
|
|
class TTF_Font(Structure):
|
|
pass
|
|
|
|
TTF_Init = _bind("TTF_Init", None, c_int)
|
|
TTF_OpenFont = _bind("TTF_OpenFont", [c_char_p, c_int], POINTER(TTF_Font))
|
|
TTF_OpenFontIndex = _bind("TTF_OpenFontIndex", [c_char_p, c_int, c_long], POINTER(TTF_Font))
|
|
TTF_OpenFontRW = _bind("TTF_OpenFontRW", [POINTER(SDL_RWops), c_int, c_int], POINTER(TTF_Font))
|
|
TTF_OpenFontIndexRW = _bind("TTF_OpenFontIndexRW", [POINTER(SDL_RWops), c_int, c_int, c_long], POINTER(TTF_Font))
|
|
|
|
TTF_STYLE_NORMAL = 0x00
|
|
TTF_STYLE_BOLD = 0x01
|
|
TTF_STYLE_ITALIC = 0x02
|
|
TTF_STYLE_UNDERLINE = 0x04
|
|
TTF_STYLE_STRIKETHROUGH = 0x08
|
|
TTF_GetFontStyle = _bind("TTF_GetFontStyle", [POINTER(TTF_Font)], c_int)
|
|
TTF_SetFontStyle = _bind("TTF_SetFontStyle", [POINTER(TTF_Font), c_int])
|
|
TTF_GetFontOutline = _bind("TTF_GetFontOutline", [POINTER(TTF_Font)], c_int)
|
|
TTF_SetFontOutline = _bind("TTF_SetFontOutline", [POINTER(TTF_Font), c_int])
|
|
|
|
TTF_HINTING_NORMAL = 0
|
|
TTF_HINTING_LIGHT = 1
|
|
TTF_HINTING_MONO = 2
|
|
TTF_HINTING_NONE = 3
|
|
TTF_GetFontHinting = _bind("TTF_GetFontHinting", [POINTER(TTF_Font)], c_int)
|
|
TTF_SetFontHinting = _bind("TTF_SetFontHinting", [POINTER(TTF_Font), c_int])
|
|
|
|
TTF_FontHeight = _bind("TTF_FontHeight", [POINTER(TTF_Font)], c_int)
|
|
TTF_FontAscent = _bind("TTF_FontAscent", [POINTER(TTF_Font)], c_int)
|
|
TTF_FontDescent = _bind("TTF_FontDescent", [POINTER(TTF_Font)], c_int)
|
|
TTF_FontLineSkip = _bind("TTF_FontLineSkip", [POINTER(TTF_Font)], c_int)
|
|
TTF_GetFontKerning = _bind("TTF_GetFontKerning", [POINTER(TTF_Font)], c_int)
|
|
TTF_SetFontKerning = _bind("TTF_SetFontKerning", [POINTER(TTF_Font), c_int])
|
|
TTF_FontFaces = _bind("TTF_FontFaces", [POINTER(TTF_Font)], c_long)
|
|
TTF_FontFaceIsFixedWidth = _bind("TTF_FontFaceIsFixedWidth", [POINTER(TTF_Font)], c_int)
|
|
TTF_FontFaceFamilyName = _bind("TTF_FontFaceFamilyName", [POINTER(TTF_Font)], c_char_p)
|
|
TTF_FontFaceStyleName = _bind("TTF_FontFaceStyleName", [POINTER(TTF_Font)], c_char_p)
|
|
TTF_GlyphIsProvided = _bind("TTF_GlyphIsProvided", [POINTER(TTF_Font), Uint16], c_int)
|
|
TTF_GlyphMetrics = _bind("TTF_GlyphMetrics", [POINTER(TTF_Font), Uint16, POINTER(c_int), POINTER(c_int), POINTER(c_int), POINTER(c_int), POINTER(c_int)], c_int)
|
|
TTF_SizeText = _bind("TTF_SizeText", [POINTER(TTF_Font), c_char_p, POINTER(c_int), POINTER(c_int)], c_int)
|
|
TTF_SizeUTF8 = _bind("TTF_SizeUTF8", [POINTER(TTF_Font), c_char_p, POINTER(c_int), POINTER(c_int)], c_int)
|
|
TTF_SizeUNICODE = _bind("TTF_SizeUNICODE", [POINTER(TTF_Font), POINTER(Uint16), POINTER(c_int), POINTER(c_int)], c_int)
|
|
TTF_RenderText_Solid = _bind("TTF_RenderText_Solid", [POINTER(TTF_Font), c_char_p, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderUTF8_Solid = _bind("TTF_RenderUTF8_Solid", [POINTER(TTF_Font), c_char_p, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderUNICODE_Solid = _bind("TTF_RenderUNICODE_Solid", [POINTER(TTF_Font), POINTER(Uint16), SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderGlyph_Solid = _bind("TTF_RenderGlyph_Solid", [POINTER(TTF_Font), Uint16, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderText_Shaded = _bind("TTF_RenderText_Shaded", [POINTER(TTF_Font), c_char_p, SDL_Color, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderUTF8_Shaded = _bind("TTF_RenderUTF8_Shaded", [POINTER(TTF_Font), c_char_p, SDL_Color, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderUNICODE_Shaded = _bind("TTF_RenderUNICODE_Shaded", [POINTER(TTF_Font), POINTER(Uint16), SDL_Color, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderGlyph_Shaded = _bind("TTF_RenderGlyph_Shaded", [POINTER(TTF_Font), Uint16, SDL_Color, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderText_Blended = _bind("TTF_RenderText_Blended", [POINTER(TTF_Font), c_char_p, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderUTF8_Blended = _bind("TTF_RenderUTF8_Blended", [POINTER(TTF_Font), c_char_p, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderUNICODE_Blended = _bind("TTF_RenderUNICODE_Blended", [POINTER(TTF_Font), POINTER(Uint16), SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderText_Blended_Wrapped = _bind("TTF_RenderText_Blended_Wrapped", [POINTER(TTF_Font), c_char_p, SDL_Color, Uint32], POINTER(SDL_Surface))
|
|
TTF_RenderUTF8_Blended_Wrapped = _bind("TTF_RenderUTF8_Blended_Wrapped", [POINTER(TTF_Font), c_char_p, SDL_Color, Uint32], POINTER(SDL_Surface))
|
|
TTF_RenderUNICODE_Blended_Wrapped = _bind("TTF_RenderUNICODE_Blended_Wrapped", [POINTER(TTF_Font), POINTER(Uint16), SDL_Color, Uint32], POINTER(SDL_Surface))
|
|
TTF_RenderGlyph_Blended = _bind("TTF_RenderGlyph_Blended", [POINTER(TTF_Font), Uint16, SDL_Color], POINTER(SDL_Surface))
|
|
TTF_RenderText = TTF_RenderText_Shaded
|
|
TTF_RenderUTF = TTF_RenderUTF8_Shaded
|
|
TTF_RenderUNICODE = TTF_RenderUNICODE_Shaded
|
|
TTF_CloseFont = _bind("TTF_CloseFont", [POINTER(TTF_Font)])
|
|
TTF_Quit = _bind("TTF_Quit")
|
|
TTF_WasInit = _bind("TTF_WasInit", None, c_int)
|
|
TTF_GetFontKerningSize = _bind("TTF_GetFontKerningSize", [POINTER(TTF_Font), c_int, c_int], c_int)
|
|
TTF_GetFontKerningSizeGlyphs = _bind("TTF_GetFontKerningSizeGlyphs", [POINTER(TTF_Font), Uint16, Uint16], c_int, nullfunc)
|
|
TTF_SetError = SDL_SetError
|
|
TTF_GetError = SDL_GetError
|
|
|