FastUIDraw
Classes | Typedefs
Painter Attribute

Painter Attribute provides the interface to define the attribute data to be used by shaders. This includes how glyphs, stroked paths and filled paths are realized as attribute data. More...

Classes

class  fastuidraw::FilledPath
 A FilledPath represents the data needed to draw a path filled. It contains -all- the data needed to fill a path regardless of the fill rule. More...
 
class  fastuidraw::GlyphAttributePacker
 A GlyphAttributePacker provides an interface to customize how glyph attribute and index data is realized by a GlyphRun and GlyphSequence. More...
 
class  fastuidraw::GlyphRun
 A GlyphRun represents a sequence of glyph codes with positions. A GlyphRun provides an interface to grab the glyph-codes realized as different renderers for the purpose of rendering text in response to the transformation that a Painter currently has. In contrast to a GlyphSequence, a GlyphRun does NOT maintain a hierarchy to perform culling. However, it does provide an interface to select continuous subsets of the glyphs for the purporse of rendering. In addition, since it does not carry a hierarchy for culling, it is also a lighter weight object than GlyphSequence. Like GlyphSequence, the methods of GlyphRun are re-entrant but not thread safe, i.e. if an application uses the same GlyphRun from multiple threads it needs to explicitely handle locking itself when using it. More...
 
class  fastuidraw::GlyphSequence
 A GlyphSequence represents a sequence of glyph codes with positions. A GlyphSequence provides an interface to grab the glyph-codes realized as different renderers for the purpose of rendering text in response to the transformation that a Painter currently has. A GlyphSequence maintains a hierarchy so that Painter can quickly cull glyphs that are not visible. The methods of GlyphSequence are re-entrant but not thread safe, i.e. if an application uses the same GlyphSequence from multiple threads it needs to explicitely handle locking itself when using it. More...
 
class  fastuidraw::PainterAttribute
 The attribute data generated/filled by Painter. Attribute data is sent to 3D API as raw bits with the expectation that shaders will cast the bits to the appropiate types for themselves. More...
 
class  fastuidraw::PainterAttributeData
 PainterAttributeData represents the attribute and index data ready to be consumed by a Painter. Data is organized into individual chuncks that can be drawn seperately. More...
 
class  fastuidraw::PainterAttributeDataFiller
 A PainterAttributeDataFiller is the interfaceto fill the data held by a PainterAttributeData. More...
 
class  fastuidraw::PainterAttributeWriter
 Provides an interface to write attribute and index data when a simple copy of data from c_array objects is not sufficient. More...
 
class  fastuidraw::StrokedPath
 A StrokedPath represents the data needed to draw a path stroked. It contains -all- the data needed to stroke a path regardless of stroking style. In particular, for a given TessellatedPath, one only needs to construct a StrokedPath once regardless of how one strokes the original path for drawing. More...
 
class  fastuidraw::StrokingAttributeWriter
 A StrokingAttributeWriter is an implementation of PainterAttributeWriter for the purpose of stroking a path. More...
 

Typedefs

typedef uint32_t fastuidraw::PainterIndex
 Typedef for the index type used by Painter.
 

Detailed Description

Painter Attribute provides the interface to define the attribute data to be used by shaders. This includes how glyphs, stroked paths and filled paths are realized as attribute data.

The class fastuidraw::PainterAttribute represents a single attribute (the what to draw). FastUIDraw works -exclusively- in drawing triangles and the indices of the what to draw are realized as fastuidraw::PainterIndex. The class fastuidraw::PainterAttributeData represents a collection of attribute and indices to draw.

If the attribute and/or index data needs to be dynamic (but the CPU cost should be low), the class fastuidraw::PainterAttributeWriter can be used. One example of its use is fastuidraw::GlyphRun which uses it to select what sub-range of indices to feed to draw only a portion of text.