ofxVariableLab/src/MsdfLayer.h

43 lines
1.4 KiB
C++

#pragma once
#include "ofMain.h"
#include "ofxMsdfgen.h"
#include "Atlas.h"
#include "Layer.h"
namespace ofxVariableLab {
class MsdfLayer : public Layer {
public:
void setup(const Settings & settings);
void update() override;
void draw(glm::vec3 position = glm::vec3(0, 0, 0)) const override;
void drawCharacter(const char character,
glm::vec3 position = glm::vec3(0, 0, 0),
ofxMsdfgen::FontVariation fontVariation = ofxMsdfgen::FontVariation()) const override;
void setProps(const Props & props) override;
const Props & getProps() const override;
void clearPropsBuffer() override;
void setId(const string & id) override;
const string & getId() override;
void setShader(shared_ptr <ofShader> _shader) override;
shared_ptr <ofShader> getShader() const override;
const Type & getType() const override;
void setAtlas(shared_ptr <ofxMsdfgen::Atlas> _atlas);
shared_ptr <ofxMsdfgen::Atlas> getAtlas() const;
shared_ptr <ofxMsdfgen::Atlas> atlas;
Settings settings;
std::deque <Props> propsBuffer;
shared_ptr <ofShader> shader;
/// \brief are props updated but not drawn yet
bool isDirty = true;
/// \brief hashed id
string id;
private:
Layer::Type type = MSDFGEN;
};
}