TextSprite::TextSprite(MaterialPtr material, const std::string &text, FontPtr font, PropertiesPtr properties) : Sprite(), _text(text), _font(font) { // Create geometry createGeometry(); // Add atlas texture to the material material->setTexture(bRenderer::DEFAULT_SHADER_UNIFORM_CHARACTER_MAP(), font->getAtlas()); setMaterial(material); setProperties(properties); }
TextSprite::TextSprite(ObjectManager *o, const std::string &name, vmml::Vector3f color, const std::string &text, FontPtr font, PropertiesPtr properties) : Sprite(), _text(text), _font(font) { // Create geometry createGeometry(); // Create shader and material ShaderPtr shader = o->generateShader(name, { 0, false, true, false, false, true, false, false, false, false, false, false, true }); MaterialPtr material = o->createMaterial(name, shader); // Add atlas texture to the material material->setTexture(bRenderer::DEFAULT_SHADER_UNIFORM_CHARACTER_MAP(), font->getAtlas()); // Pass color to material (don't pass texture, has to be treated separately to bind right tex unit) material->setVector(bRenderer::WAVEFRONT_MATERIAL_DIFFUSE_COLOR(), color); setMaterial(material); setProperties(properties); }