atlas resolution independent scale
This commit is contained in:
parent
3016879e22
commit
1ab9d7b2cc
4 changed files with 5 additions and 0 deletions
|
@ -14,6 +14,7 @@ void MsdfAtlasLayerCombo::setup(const ComboIdentifier & layerIdentifier,
|
||||||
atlasSettings.minimumScale = this->settings.minimumScale;
|
atlasSettings.minimumScale = this->settings.minimumScale;
|
||||||
atlasSettings.characters = "";
|
atlasSettings.characters = "";
|
||||||
atlasSettings.maxInterpolationStepSize = this->settings.maxInterpolationStepSize;
|
atlasSettings.maxInterpolationStepSize = this->settings.maxInterpolationStepSize;
|
||||||
|
scaleFactor = 64.0 / this->settings.scale;
|
||||||
|
|
||||||
atlas = make_shared <ofxMsdfgen::Atlas>();
|
atlas = make_shared <ofxMsdfgen::Atlas>();
|
||||||
|
|
||||||
|
@ -43,6 +44,7 @@ void MsdfAtlasLayerCombo::careForChild(shared_ptr <Layer> layer){
|
||||||
msdfLayer->setDirtyDirty(true);
|
msdfLayer->setDirtyDirty(true);
|
||||||
msdfLayer->setAtlas(this->atlas);
|
msdfLayer->setAtlas(this->atlas);
|
||||||
msdfLayer->setShader(msdfShader);
|
msdfLayer->setShader(msdfShader);
|
||||||
|
msdfLayer->scaleFactor = scaleFactor;
|
||||||
auto & as = atlas->settings;
|
auto & as = atlas->settings;
|
||||||
for(const char c : layer->getProps().text){
|
for(const char c : layer->getProps().text){
|
||||||
if(as.characters.find(c) == std::string::npos){
|
if(as.characters.find(c) == std::string::npos){
|
||||||
|
|
|
@ -33,5 +33,6 @@ class MsdfAtlasLayerCombo : public AtlasLayerCombo {
|
||||||
VFlipState vFlip;
|
VFlipState vFlip;
|
||||||
ComboIdentifier identifier;
|
ComboIdentifier identifier;
|
||||||
bool isDirty = false;
|
bool isDirty = false;
|
||||||
|
float scaleFactor = 1.0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,6 +168,7 @@ void MsdfLayer::drawCharacter(const char character,
|
||||||
const ofImage & atlasImage = atlas->getAtlasImage();
|
const ofImage & atlasImage = atlas->getAtlasImage();
|
||||||
ofDisableAlphaBlending();
|
ofDisableAlphaBlending();
|
||||||
ofEnableDepthTest();
|
ofEnableDepthTest();
|
||||||
|
scale *= scaleFactor;
|
||||||
float pixelRange = 2;
|
float pixelRange = 2;
|
||||||
int atlas_w = atlasImage.getWidth();
|
int atlas_w = atlasImage.getWidth();
|
||||||
int atlas_h = atlasImage.getHeight();
|
int atlas_h = atlasImage.getHeight();
|
||||||
|
|
|
@ -52,6 +52,7 @@ class MsdfLayer : public Layer {
|
||||||
/// \brief hashed id, or just counting up
|
/// \brief hashed id, or just counting up
|
||||||
string id = "";
|
string id = "";
|
||||||
VFlipState vFlip = V_FLIP_UNKNOWN;
|
VFlipState vFlip = V_FLIP_UNKNOWN;
|
||||||
|
float scaleFactor = 1.0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Props lastProps;
|
Props lastProps;
|
||||||
|
|
Loading…
Reference in a new issue