示例#1
0
文件: ttf.go 项目: jgastal/Go-SDL
// 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))
}
示例#2
0
文件: ttf.go 项目: willemvds/sdl
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
}
示例#3
0
// 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
}
示例#4
0
文件: ttf.go 项目: badgerodon/go
/*
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
}
示例#5
0
文件: ttf.go 项目: Zwobot/Go-SDL
// 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)
}
示例#6
0
文件: ttf.go 项目: beoran/fungo
// 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)
}