From 7e6288c597e42c6a04a25e80f040e2d965a0394a Mon Sep 17 00:00:00 2001 From: Tleety Date: Thu, 10 Mar 2016 15:36:33 +0100 Subject: [PATCH] Some merge fixes and some sprite fixes. --- include/Engine/Rendering/SpriteJob.h | 28 ++++++++----------- .../Shaders/CombineGaussianTexture.frag.glsl | 9 ------ src/Engine/Rendering/DrawFinalPass.cpp | 10 +++++-- 3 files changed, 19 insertions(+), 28 deletions(-) diff --git a/include/Engine/Rendering/SpriteJob.h b/include/Engine/Rendering/SpriteJob.h index 6ba2e63f..3d55e721 100644 --- a/include/Engine/Rendering/SpriteJob.h +++ b/include/Engine/Rendering/SpriteJob.h @@ -28,15 +28,7 @@ struct SpriteJob : RenderJob DiffuseTexture = CommonFunctions::TryLoadResource(cSprite["DiffuseTexture"]); IncandescenceTexture = CommonFunctions::TryLoadResource(cSprite["GlowMap"]); - if ((bool)cSprite["Linear"]) { - glBindTexture(GL_TEXTURE_2D, DiffuseTexture->m_Texture); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - } else { - glBindTexture(GL_TEXTURE_2D, DiffuseTexture->m_Texture); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - } + Linear = (bool)cSprite["Linear"]; StartIndex = matProp.material->StartIndex; EndIndex = matProp.material->EndIndex; @@ -60,21 +52,23 @@ struct SpriteJob : RenderJob glm::vec3 scale = Transform::AbsoluteScale(world, cSprite.EntityID); - if((bool)cSprite["KeepRatioX"] == true) { - ScaleX = scale.x; - } - if ((bool)cSprite["KeepRatioY"] == true) { - ScaleY = scale.y; - } if((bool)cSprite["KeepRatio"] == true) { if(scale.y >= scale.x) { ScaleY = (scale.x)/(scale.y); - ScaleX = 1; + ScaleX = 1.f; } else { - ScaleY = 1; + ScaleY = 1.f; ScaleX = (scale.x)/(scale.y); } + } else { + if ((bool)cSprite["KeepRatioX"] == true) { + ScaleX = scale.x; + } + if ((bool)cSprite["KeepRatioY"] == true) { + ScaleY = scale.y; + } } + }; unsigned int TextureID; diff --git a/resources/Shaders/CombineGaussianTexture.frag.glsl b/resources/Shaders/CombineGaussianTexture.frag.glsl index b6806493..93c36fb8 100644 --- a/resources/Shaders/CombineGaussianTexture.frag.glsl +++ b/resources/Shaders/CombineGaussianTexture.frag.glsl @@ -18,13 +18,4 @@ void main() result += textureLod(Texture, Input.TextureCoordinate, i); } fragmentColor = result; -/* - vec4 texel0 = textureLod(Texture, Input.TextureCoordinate, 0); - vec4 texel1 = textureLod(Texture, Input.TextureCoordinate, 1); - vec4 texel2 = textureLod(Texture, Input.TextureCoordinate, 2); - vec4 texel3 = textureLod(Texture, Input.TextureCoordinate, 3); - vec4 texel4 = textureLod(Texture, Input.TextureCoordinate, 4); - - fragmentColor = texel0 + texel1 + texel2 + texel3 + texel4;*/ - } diff --git a/src/Engine/Rendering/DrawFinalPass.cpp b/src/Engine/Rendering/DrawFinalPass.cpp index a685a6d3..d03b0c2b 100644 --- a/src/Engine/Rendering/DrawFinalPass.cpp +++ b/src/Engine/Rendering/DrawFinalPass.cpp @@ -1291,12 +1291,18 @@ void DrawFinalPass::DrawSprites(std::list>&jobs, Rend glActiveTexture(GL_TEXTURE1); if (spriteJob->DiffuseTexture != nullptr) { glBindTexture(GL_TEXTURE_2D, spriteJob->DiffuseTexture->m_Texture); + if (spriteJob->Linear) { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + } else { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + } + } else { glBindTexture(GL_TEXTURE_2D, m_ErrorTexture->m_Texture); } - - glActiveTexture(GL_TEXTURE2); if (spriteJob->IncandescenceTexture != nullptr) { glBindTexture(GL_TEXTURE_2D, spriteJob->IncandescenceTexture->m_Texture);