44 lines
1.4 KiB
C
44 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;
|
||
|
};
|
||
|
}
|