// Renders UTF-8 text in the specified color and returns an SDL surface. Solid // rendering is quick, although not as smooth as the other rendering types. func RenderUTF8_Solid(font *Font, text string, color sdl.Color) *sdl.Surface { ctext := C.CString(text) ccol := C.SDL_Color{C.Uint8(color.R), C.Uint8(color.G), C.Uint8(color.B), C.Uint8(color.Unused)} surface := C.TTF_RenderUTF8_Solid(font.cfont, ctext, ccol) C.free(unsafe.Pointer(ctext)) return (*sdl.Surface)(unsafe.Pointer(surface)) }
func (f *Font) RenderUTF8Solid(text string, fg sdl.Color) (*sdl.Surface, error) { ctext := C.CString(text) ccolor := C.SDL_Color{C.Uint8(fg.R), C.Uint8(fg.G), C.Uint8(fg.B), C.Uint8(255)} s := C.TTF_RenderUTF8_Solid(f.c, ctext, ccolor) if s == nil { return nil, getError() } return (*sdl.Surface)(unsafe.Pointer(s)), nil }
// RenderUTF8_Solid (https://www.libsdl.org/projects/SDL_ttf/docs/SDL_ttf_44.html#SEC44) func (f *Font) RenderUTF8_Solid(text string, color sdl.Color) (*sdl.Surface, error) { _text := C.CString(text) defer C.free(unsafe.Pointer(_text)) _c := C.SDL_Color{C.Uint8(color.R), C.Uint8(color.G), C.Uint8(color.B), C.Uint8(color.A)} surface := (*sdl.Surface)(unsafe.Pointer(C.TTF_RenderUTF8_Solid(f.f, _text, _c))) if surface == nil { return nil, GetError() } return surface, nil }
/* func (this Font) GetOutline() int { } func (this Font) SetOutline(outline int) { } func (this Font) GetHinting() Hinting { } func (this Font) SetHinting(hinting Hinting) { } func (this Font) Height() int { } func (this Font) Ascent() int { } func (this Font) Descent() int { } func (this Font) LineSkip() int { } func (this Font) GetKerning() int { } func (this Font) SetKerning(allowed int) { } func (this Font) Faces() int64 { } func (this Font) FaceIsFixedWidth() bool { } func (this Font) FaceFamilyName() string { } func (this Font) FaceStyleName() string { } func (this Font) SizeText(text string) (width int, height int, err error) { } */ func (this Font) RenderTextSolid(text string, color sdl.Color) (sdl.Surface, error) { c_font := (*C.TTF_Font)(this.Ptr) c_text := C.CString(text) defer C.free(unsafe.Pointer(c_text)) c_color := *(*C.SDL_Color)(unsafe.Pointer(&color)) ret := C.TTF_RenderUTF8_Solid(c_font, c_text, c_color) if ret == nil { return sdl.Surface{}, sdl.GetError() } return sdl.Surface{unsafe.Pointer(ret)}, nil }
// Renders UTF-8 text in the specified color and returns an SDL surface. Solid // rendering is quick, although not as smooth as the other rendering types. func RenderUTF8_Solid(font *Font, text string, color sdl.Color) *sdl.Surface { sdl.GlobalMutex.Lock() // Because 'C.TTF_Render*' uses 'C.SDL_CreateRGBSurface' font.mutex.Lock() // Use a write lock, because 'C.TTF_Render*' may update font's internal caches ctext := C.CString(text) ccol := C.SDL_Color{C.Uint8(color.R), C.Uint8(color.G), C.Uint8(color.B), C.Uint8(color.Unused)} surface := C.TTF_RenderUTF8_Solid(font.cfont, ctext, ccol) C.free(unsafe.Pointer(ctext)) font.mutex.Unlock() sdl.GlobalMutex.Unlock() return wrap(surface) }
// Create an 8-bit palettized surface and render the given text at // fast quality with the given font and color. The 0 pixel is the // colorkey, giving a transparent background, and the 1 pixel is set // to the text color. // This function returns the new surface, or NULL if there was an error. // Works with UTF8 encoded strings. func TTFRenderSolid(font *C.TTF_Font, text string, color C.SDL_Color) *C.SDL_Surface { ctext := cstr(text) defer ctext.free() return C.TTF_RenderUTF8_Solid(font, ctext, color) }