@@ -33,12 +33,14 @@ public:
|
||||
if (m_Quality == 0) {
|
||||
return m_BlackTexture->m_Texture;
|
||||
} else {
|
||||
return m_GaussianTexture_vert;
|
||||
return m_FinalGaussianTexture;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
void GaussianLodPass(GLuint mipMap, GLuint texture);
|
||||
void CombineGaussianBlur();
|
||||
Texture* m_BlackTexture;
|
||||
Model* m_ScreenQuad;
|
||||
|
||||
@@ -47,15 +49,19 @@ private:
|
||||
//const LightCullingPass* m_LightCullingPass
|
||||
int m_Iterations;
|
||||
int m_Quality = 0;
|
||||
int m_BloomLod = 5;
|
||||
|
||||
GLuint m_GaussianTexture_horiz = 0;
|
||||
GLuint m_GaussianTexture_vert = 0;
|
||||
GLuint m_FinalGaussianTexture = 0;
|
||||
|
||||
FrameBuffer m_GaussianFrameBuffer_horiz;
|
||||
FrameBuffer m_GaussianFrameBuffer_vert;
|
||||
FrameBuffer* m_GaussianFrameBuffer_horiz = nullptr;
|
||||
FrameBuffer* m_GaussianFrameBuffer_vert = nullptr;
|
||||
FrameBuffer m_GaussianCombineBuffer;
|
||||
|
||||
ShaderProgram* m_GaussianProgram_horiz;
|
||||
ShaderProgram* m_GaussianProgram_vert;
|
||||
ShaderProgram* m_GaussianCombineProgram;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -7,11 +7,12 @@
|
||||
class BufferResource
|
||||
{
|
||||
public:
|
||||
BufferResource(GLuint* resourceHandle, GLenum resourceType, GLenum attachment);
|
||||
BufferResource(GLuint* resourceHandle, GLenum resourceType, GLenum attachment, GLuint mipMapLod);
|
||||
|
||||
GLuint* m_ResourceHandle;
|
||||
GLenum m_ResourceType;
|
||||
GLenum m_Attachment;
|
||||
GLuint m_MipMapLod = 0;
|
||||
private:
|
||||
|
||||
};
|
||||
@@ -20,15 +21,15 @@ template <GLenum RESOURCETYPE>
|
||||
class ResourceType : public BufferResource
|
||||
{
|
||||
public:
|
||||
ResourceType(GLuint* resourceHandle, GLenum attachment)
|
||||
: BufferResource(resourceHandle, RESOURCETYPE, attachment) { }
|
||||
ResourceType(GLuint* resourceHandle, GLenum attachment, GLuint mipMapLod)
|
||||
: BufferResource(resourceHandle, RESOURCETYPE, attachment, mipMapLod) { }
|
||||
};
|
||||
|
||||
class Texture2D : public ResourceType<GL_TEXTURE_2D>
|
||||
{
|
||||
public:
|
||||
Texture2D(GLuint* resourceHandle, GLenum attachment)
|
||||
: ResourceType(resourceHandle, attachment) { };
|
||||
Texture2D(GLuint* resourceHandle, GLenum attachment, GLuint mipMapLod = 0)
|
||||
: ResourceType(resourceHandle, attachment, mipMapLod) { };
|
||||
|
||||
~Texture2D();
|
||||
};
|
||||
@@ -37,7 +38,7 @@ class RenderBuffer : public ResourceType<GL_RENDERBUFFER>
|
||||
{
|
||||
public:
|
||||
RenderBuffer(GLuint* resourceHandle, GLenum attachment)
|
||||
: ResourceType(resourceHandle, attachment)
|
||||
: ResourceType(resourceHandle, attachment, 0)
|
||||
{ };
|
||||
|
||||
~RenderBuffer();
|
||||
@@ -47,7 +48,7 @@ class Texture2DArray : public ResourceType<GL_TEXTURE_2D_ARRAY>
|
||||
{
|
||||
public:
|
||||
Texture2DArray(GLuint* resourceHandle, GLenum attachment)
|
||||
: ResourceType(resourceHandle, attachment)
|
||||
: ResourceType(resourceHandle, attachment, 0)
|
||||
{ };
|
||||
|
||||
~Texture2DArray();
|
||||
|
||||
@@ -21,14 +21,15 @@ struct SpriteJob : RenderJob
|
||||
SpriteJob(ComponentWrapper cSprite, Camera* camera, glm::mat4 matrix, World* world, glm::vec4 fillColor, float fillPercentage, bool depthSorted, bool isIndicator)
|
||||
: RenderJob()
|
||||
{
|
||||
Model = ResourceManager::Load<::Model>("Models/Core/UnitQuad.mesh");
|
||||
Model = ResourceManager::Load<::Model>((std::string)cSprite["Model"]);
|
||||
::RawModel::MaterialProperties matProp = Model->MaterialGroups().front();
|
||||
TextureID = 0;
|
||||
|
||||
DiffuseTexture = CommonFunctions::TryLoadResource<TextureSprite, true>(cSprite["DiffuseTexture"]);
|
||||
|
||||
IncandescenceTexture = CommonFunctions::TryLoadResource<TextureSprite, true>(cSprite["GlowMap"]);
|
||||
|
||||
Linear = (bool)cSprite["Linear"];
|
||||
|
||||
StartIndex = matProp.material->StartIndex;
|
||||
EndIndex = matProp.material->EndIndex;
|
||||
Matrix = matrix;
|
||||
@@ -48,6 +49,26 @@ struct SpriteJob : RenderJob
|
||||
|
||||
FillColor = fillColor;
|
||||
FillPercentage = fillPercentage;
|
||||
|
||||
glm::vec3 scale = Transform::AbsoluteScale(world, cSprite.EntityID);
|
||||
|
||||
if((bool)cSprite["KeepRatio"] == true) {
|
||||
if(scale.y >= scale.x) {
|
||||
ScaleY = (scale.x)/(scale.y);
|
||||
ScaleX = 1.f;
|
||||
} else {
|
||||
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;
|
||||
@@ -69,6 +90,9 @@ struct SpriteJob : RenderJob
|
||||
bool Pickable;
|
||||
bool IsIndicator = false;
|
||||
bool BlurBackground = false;
|
||||
float ScaleX = 1;
|
||||
float ScaleY = 1;
|
||||
bool Linear = false;
|
||||
|
||||
glm::vec4 FillColor = glm::vec4(0);
|
||||
float FillPercentage = 0.0;
|
||||
|
||||
Reference in New Issue
Block a user