#include "mesh.h"
#include "object.h"
#include "objectinstance.h"
-#include "technique.h"
namespace Msp {
namespace GL {
/**
-Creates an object consisting of the visual representation of a string. If you
-derive from Text to customize it, make sure you call Text::setup_render or
-otherwise bind the appropriate texture.
+Creates a Mesh and an Object for rendering text.
+
+The mesh is created with a font size of 1 unit. Set the Text's model matrix to
+scale it to the desired size.
+
+If you derive from Text to customize it, make sure you call Text::setup_render
+or otherwise set the appropriate texture to the Renderer.
*/
class Text: public ObjectInstance
{
Mesh mesh;
Object object;
Tag texture_slot;
- float horz_align;
- float vert_offset;
- float width;
+ float horz_align = 0.0f;
+ float vert_offset = 0.0f;
+ float width = 0.0f;
public:
Text(const Font &, const Technique * = 0, Tag = Tag());
const Mesh *get_mesh() const { return &mesh; }
- /** Sets technique to render with, replacing the given texture slot with
+ /** Sets technique to render with, along with the texture slot to use for
the font texture. If no texture slot is specified, heuristics are used to
choose a suitable one. */
void set_technique(const Technique *, Tag = Tag());
const Technique *get_technique() const { return object.get_technique(); }
- /// Sets the string to be displayed.
+ /** Sets the string to be displayed, with an explicit character encoding. */
void set_text(const std::string &, StringCodec::Decoder &);
template<typename C>
set_text(t, dec);
}
+ /** Sets the string to be displayed, with UTF-8 encoding. */
void set_text(const std::string &t)
{ set_text<StringCodec::Utf8>(t); }
- /// Clears the object's contents.
+ /** Clears any previous contents. */
void clear();
- /// Sets horizontal and vertical alignment with predefined anchors.
+ /** Sets horizontal and vertical alignment with predefined anchors. */
void set_alignment(HorizontalAlign, VerticalAlign = BASELINE);
/** Sets horizontal and vertical alignment. 0.0 means left or baseline,