Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Char ¶
type Char struct {
Id uint8 // The character id.
X float32 // The left position of the character image in the texture.
Y float32 // The top position of the character image in the texture.
Width float32 // The width of the character image in the texture.
Height float32 // The height of the character image in the texture.
Xoffset float32 // How much the current position should be offset when copying the image from the texture to the screen.
Yoffset float32 // How much the current position should be offset when copying the image from the texture to the screen.
Xadvance float32 // How much the current position should be advanced after drawing the character.
Page int // The texture page where the character image is found.
Channel int // The texture channel where the character image is found (1 = blue, 2 = green, 4 = red, 8 = alpha, 15 = all channels).
Letter string // The letter is represents
}
This tag describes on character in the font. There is one for each included character in the font.
type Common ¶
type Common struct {
LineHeight float32 // This is the distance in pixels between each line of text.
Base int // The number of pixels from the absolute top of the line to the base of the characters.
ScaleW float32 // The width of the texture, normally used to scale the x pos of the character image.
ScaleH float32 // The height of the texture, normally used to scale the y pos of the character image.
Pages int // The number of texture pages included in the font.
Packed int // Set to 1 if the monochrome characters have been packed into each of the texture channels. In this case alphaChnl describes what is stored in each channel.
AlphaChnl int // Set to 0 if the channel holds the glyph data, 1 if it holds the outline, 2 if it holds the glyph and the outline, 3 if its set to zero, and 4 if its set to one.
RedChnl int // Set to 0 if the channel holds the glyph data, 1 if it holds the outline, 2 if it holds the glyph and the outline, 3 if its set to zero, and 4 if its set to one.
GreenChnl int // Set to 0 if the channel holds the glyph data, 1 if it holds the outline, 2 if it holds the glyph and the outline, 3 if its set to zero, and 4 if its set to one.
BlueChnl int // Set to 0 if the channel holds the glyph data, 1 if it holds the outline, 2 if it holds the glyph and the outline, 3 if its set to zero, and 4 if its set to one.
}
This tag holds information common to all characters.
type Font ¶
type Font struct {
Common Common
// contains filtered or unexported fields
}
func (*Font) AmountBetween ¶
func (*Font) LineHeight ¶
type FontReader ¶ added in v0.4.0
type FontReader struct {
// contains filtered or unexported fields
}
func NewFontReader ¶ added in v0.4.0
func NewFontReader() *FontReader
type Info ¶
type Info struct {
Face string // This is the name of the true type font.
Size int // The size of the true type font.
Bld bool // The font is bold.
Italic bool // The font is italic.
Charset string // The name of the OEM charset used (when not unicode).
Unicode bool // Set to 1 if it is the unicode charset.
StretchH int // The font height stretch in percentage. 100% means no stretch.
Smooth bool // Set to 1 if smoothing was turned on.
AA int // The supersampling level used. 1 means no supersampling was used.
Padding []int // The padding for each character (up, right, down, left).
Spacing []int // The spacing for each character (horizontal, vertical).
Outline int // The outline thickness for the characters.
}
This tag holds information on how the font was generated.
type Kerning ¶
type Kerning struct {
First uint8 // The first character id.
Second uint8 // The second character id.
Amount float32 // How much the x position should be adjusted when drawing the second character immediately following the first.
}
The kerning information is used to adjust the distance between certain characters, e.g. some characters should be placed closer to each other than others.
type OpenGLFont ¶ added in v0.5.0
type OpenGLFont struct {
*Font
// contains filtered or unexported fields
}
func NewOpenGLFont ¶ added in v0.5.0
func NewOpenGLFont(fntFilename, imageFilename string) (*OpenGLFont, error)
NewOpenGLFont createa a new font by reading the FNT and texture image file (PNG) This creates an OpenGL resource ; do not forget to call Delete() when no longer used.
func (*OpenGLFont) Delete ¶ added in v0.5.0
func (f *OpenGLFont) Delete()
type OpenGLTextureBuilder ¶ added in v0.5.0
type OpenGLTextureBuilder struct{}
func NewTextureBuilder ¶ added in v0.5.0
func NewTextureBuilder() OpenGLTextureBuilder
func (OpenGLTextureBuilder) BuildFromFile ¶ added in v0.5.0
func (r OpenGLTextureBuilder) BuildFromFile(filename string) (uint32, error)
type Text ¶
type Text struct {
X float32 // left-top x-coordinate
Y float32 // left-top y-coordinate
// contains filtered or unexported fields
}
func NewText ¶
func NewText(text string, leftTopX, leftTopY, widthOrZero, height float32, font *OpenGLFont) Text
NewText returns a new Text value for rendering a (multiline) string using a Font inside a 2D box. If the width is set to zero then the text will have a unscaled width computed from the text.
func (Text) ActualWidth ¶ added in v0.8.0
func (Text) Centered ¶ added in v0.7.0
Centered returns a new text centered on its X and Y coordinate.
func (Text) Render ¶
func (t Text) Render()
Render calls a function with 4 TextureVertex values per character. http://www.glprogramming.com/red/chapter09.html http://www.angelcode.com/products/bmfont/doc/render_text.html
type TextureVertex ¶
type TextureVertex struct {
S, T float32 // texture coordinates
X, Y float32 // position coordinates
}
TextureVertex captures one corner of a character to render.
