coordinate system pixel correct
This commit is contained in:
parent
5456033ccf
commit
b4fe28b7d5
2 changed files with 30 additions and 5 deletions
|
@ -84,7 +84,7 @@ void GPUFontAtlasLayerCombo::draw(){
|
||||||
|
|
||||||
float worldSize = targetFontSize / (float)width;
|
float worldSize = targetFontSize / (float)width;
|
||||||
|
|
||||||
font->setWorldSize(worldSize);
|
font->setWorldSize(targetFontSize);
|
||||||
|
|
||||||
float width_unit = 1;
|
float width_unit = 1;
|
||||||
float height_unit = (float)height / width;
|
float height_unit = (float)height / width;
|
||||||
|
@ -92,7 +92,9 @@ void GPUFontAtlasLayerCombo::draw(){
|
||||||
//ofClear(125, 255, 125, 255);
|
//ofClear(125, 255, 125, 255);
|
||||||
|
|
||||||
//glm::mat4 projection = transform.getProjectionMatrix((float)width / height);
|
//glm::mat4 projection = transform.getProjectionMatrix((float)width / height);
|
||||||
glm::mat4 projection = transform.getOrthoProjectionMatrix(width_unit, height_unit);
|
glm::mat4 projection = transform.getOrthoProjectionMatrix(width,
|
||||||
|
height,
|
||||||
|
Transform::TOP_LEFT);
|
||||||
glm::mat4 view = transform.getViewMatrix();
|
glm::mat4 view = transform.getViewMatrix();
|
||||||
glm::mat4 model = glm::mat4(1.0f);
|
glm::mat4 model = glm::mat4(1.0f);
|
||||||
|
|
||||||
|
@ -150,7 +152,7 @@ void GPUFontAtlasLayerCombo::draw(){
|
||||||
cy = 0.5f * (bb.minY + bb.maxY);
|
cy = 0.5f * (bb.minY + bb.maxY);
|
||||||
//ofRectangle rectangle(0, 0, width, height);
|
//ofRectangle rectangle(0, 0, width, height);
|
||||||
//ofDrawRectangle(rectangle);
|
//ofDrawRectangle(rectangle);
|
||||||
font->draw(mx, my, 0, mainText, vFlip == V_FLIP_ON);
|
font->draw(mouse.x, mouse.y, 0, mainText, vFlip == V_FLIP_ON);
|
||||||
glUseProgram(currentProgram);
|
glUseProgram(currentProgram);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,10 @@
|
||||||
namespace ofxVariableLab {
|
namespace ofxVariableLab {
|
||||||
class GPUFontAtlasLayerCombo : public AtlasLayerCombo {
|
class GPUFontAtlasLayerCombo : public AtlasLayerCombo {
|
||||||
struct Transform {
|
struct Transform {
|
||||||
|
enum Origin {
|
||||||
|
CENTERED,
|
||||||
|
TOP_LEFT
|
||||||
|
};
|
||||||
float fovy = glm::radians(60.0f);
|
float fovy = glm::radians(60.0f);
|
||||||
float distance = 0.42f;
|
float distance = 0.42f;
|
||||||
glm::mat3 rotation = glm::mat3(1.0f);
|
glm::mat3 rotation = glm::mat3(1.0f);
|
||||||
|
@ -20,8 +24,27 @@ class GPUFontAtlasLayerCombo : public AtlasLayerCombo {
|
||||||
glm::mat4 getProjectionMatrix(float aspect){
|
glm::mat4 getProjectionMatrix(float aspect){
|
||||||
return glm::perspective( /* fovy = */ glm::radians(60.0f), aspect, 0.002f, 12.000f);
|
return glm::perspective( /* fovy = */ glm::radians(60.0f), aspect, 0.002f, 12.000f);
|
||||||
}
|
}
|
||||||
glm::mat4 getOrthoProjectionMatrix(float w, float h){
|
glm::mat4 getOrthoProjectionMatrix(float w, float h, Origin origin = Origin::CENTERED){
|
||||||
return glm::ortho(-(w * 0.5f), (w * 0.5f), -(h * 0.5f), (h * 0.5f), 0.002f, 12.000f);
|
switch(origin){
|
||||||
|
default:
|
||||||
|
case Origin::CENTERED:
|
||||||
|
return glm::ortho(-(w * 0.5f),
|
||||||
|
(w * 0.5f),
|
||||||
|
-(h * 0.5f),
|
||||||
|
(h * 0.5f),
|
||||||
|
0.002f,
|
||||||
|
12.000f);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Origin::TOP_LEFT:
|
||||||
|
return glm::ortho(0.0f,
|
||||||
|
w,
|
||||||
|
0.0f,
|
||||||
|
h,
|
||||||
|
0.002f,
|
||||||
|
12.000f);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
glm::mat4 getViewMatrix(){
|
glm::mat4 getViewMatrix(){
|
||||||
|
|
Loading…
Reference in a new issue