Sprites can now be rendered with the texture ratio in mind

This commit is contained in:
Tleety
2016-03-09 23:31:54 +01:00
parent 087facc22e
commit 592edf7dba
5 changed files with 21 additions and 6 deletions
+1 -1
Submodule assets updated: 3af64d8b1f...85d96f6f3d
+14 -3
View File
@@ -49,11 +49,22 @@ struct SpriteJob : RenderJob
FillColor = fillColor; FillColor = fillColor;
FillPercentage = fillPercentage; FillPercentage = fillPercentage;
glm::vec3 scale = Transform::AbsoluteScale(world, cSprite.EntityID);
if((bool)cSprite["KeepRatioX"] == true) { if((bool)cSprite["KeepRatioX"] == true) {
ScaleX = Transform::AbsoluteScale(world, cSprite.EntityID).x; ScaleX = scale.x;
} }
if ((bool)cSprite["KeepRatioZ"] == true) { if ((bool)cSprite["KeepRatioY"] == true) {
ScaleY = Transform::AbsoluteScale(world, cSprite.EntityID).y; ScaleY = scale.y;
}
if((bool)cSprite["KeepRatio"] == true) {
if(scale.y >= scale.x) {
ScaleY = (scale.x)/(scale.y);
ScaleX = 1;
} else {
ScaleY = 1;
ScaleX = (scale.x)/(scale.y);
}
} }
}; };
+1
View File
@@ -7,5 +7,6 @@
<DepthSort>true</DepthSort> <DepthSort>true</DepthSort>
<KeepRatioX>false</KeepRatioX> <KeepRatioX>false</KeepRatioX>
<KeepRatioY>false</KeepRatioY> <KeepRatioY>false</KeepRatioY>
<KeepRatio>false</KeepRatio>
<BlurBackground>false</BlurBackground> <BlurBackground>false</BlurBackground>
</Sprite> </Sprite>
+3
View File
@@ -30,6 +30,9 @@
<xs:element name="KeepRatioY" type="t:bool" minOccurs="0"> <xs:element name="KeepRatioY" type="t:bool" minOccurs="0">
<xs:annotation><xs:documentation>Wether the sprite should repeat in y instead of stretch when scaled.</xs:documentation></xs:annotation> <xs:annotation><xs:documentation>Wether the sprite should repeat in y instead of stretch when scaled.</xs:documentation></xs:annotation>
</xs:element> </xs:element>
<xs:element name="KeepRatio" type="t:bool" minOccurs="0">
<xs:annotation><xs:documentation>Keep a 1:1 ratio between X and Y.</xs:documentation></xs:annotation>
</xs:element>
<xs:element name="BlurBackground" type="t:bool" minOccurs="0"> <xs:element name="BlurBackground" type="t:bool" minOccurs="0">
<xs:annotation><xs:documentation>Wether the background should be blurred begind this sprite.</xs:documentation></xs:annotation> <xs:annotation><xs:documentation>Wether the background should be blurred begind this sprite.</xs:documentation></xs:annotation>
</xs:element> </xs:element>
+2 -2
View File
@@ -311,8 +311,8 @@ void DrawFinalPass::Draw(RenderScene& scene, BlurHUD* blurHUDPass)
GLERROR("TransparentObjects"); GLERROR("TransparentObjects");
//state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
stateSprite->Enable(GL_DEPTH_TEST); stateSprite->Enable(GL_DEPTH_TEST);
stateSprite->AlphaFunc(GL_GEQUAL, 0.05f); //stateSprite->AlphaFunc(GL_GEQUAL, 0.05f);
stateSprite->Enable(GL_ALPHA_TEST); //stateSprite->Enable(GL_ALPHA_TEST);
DrawSprites(scene.Jobs.SpriteJob, scene); DrawSprites(scene.Jobs.SpriteJob, scene);
GLERROR("SpriteJobs"); GLERROR("SpriteJobs");