diff --git a/Nuake/src/Rendering/SceneRenderer.cpp b/Nuake/src/Rendering/SceneRenderer.cpp index ffc6c5fe..07f81404 100644 --- a/Nuake/src/Rendering/SceneRenderer.cpp +++ b/Nuake/src/Rendering/SceneRenderer.cpp @@ -269,6 +269,17 @@ namespace Nuake Shader* shader = ShaderManager::GetShader("Resources/Shaders/outline.shader"); shader->Bind(); + //mGBuffer->GetTexture(GL_COLOR_ATTACHMENT3)->Bind(0); + //mGBuffer->GetTexture(GL_DEPTH_ATTACHMENT)->Bind(1); + //shader->SetUniforms( + //{ + // {"u_EntityID", mOutlineEntityID == -1 ? -1 : mOutlineEntityID + 1}, + // {"u_EntityTexture", 0}, + // {"u_OutlineColor", projectSettings.PrimaryColor}, + // {"u_Depth", 1}, + // {"u_Radius", projectSettings.OutlineRadius * projectSettings.ResolutionScale}, + //}); + shader->SetUniform("u_EntityID", mOutlineEntityID == -1 ? -1 : mOutlineEntityID + 1); shader->SetUniform("u_EntityTexture", mGBuffer->GetTexture(GL_COLOR_ATTACHMENT3).get(), 0); shader->SetUniform("u_OutlineColor", projectSettings.PrimaryColor); diff --git a/Nuake/src/Rendering/Shaders/Shader.cpp b/Nuake/src/Rendering/Shaders/Shader.cpp index d39c9082..1e73457f 100644 --- a/Nuake/src/Rendering/Shaders/Shader.cpp +++ b/Nuake/src/Rendering/Shaders/Shader.cpp @@ -22,7 +22,7 @@ namespace Nuake Source = ParseShader(fileContent); programId = CreateProgram(Source); return; - } + } } Logger::Log("Shader source file not found: " + filePath, "shader", CRITICAL); @@ -378,7 +378,7 @@ namespace Nuake void Shader::SetUniform(const std::string& name, bool value) { - SetUniform(name, value); + SetUniform(name, static_cast(value)); } void Shader::SetUniform(uint32_t uniformSlot, int value) diff --git a/Nuake/src/Rendering/Shaders/Shader.h b/Nuake/src/Rendering/Shaders/Shader.h index 3c010548..bc42fa85 100644 --- a/Nuake/src/Rendering/Shaders/Shader.h +++ b/Nuake/src/Rendering/Shaders/Shader.h @@ -130,22 +130,23 @@ namespace Nuake void SetUniforms(const std::vector& uniforms); void SetUniform(const std::string& name, float v0); + void SetUniform(const std::string& name, float v0, float v1); + void SetUniform(const std::string& name, float v0, float v1, float v3); + void SetUniform(const std::string& name, float v0, float v1, float v3, float v4); void SetUniform(const std::string& name, int v0); void SetUniform(const std::string& name, unsigned int v0); - void SetUniform(const std::string& name, float v0, float v1); + void SetUniformv(const std::string& name, int size, int* value); void SetUniform(const std::string& name, Vector2 v0); - void SetUniform(const std::string& name, float v0, float v1, float v3); void SetUniform(const std::string& name, Vector3 v0); - void SetUniform(const std::string& name, float v0, float v1, float v3, float v4); void SetUniform(const std::string& name, Vector4 v0); void SetUniform(const std::string& name, Matrix3 v0); void SetUniform(const std::string& name, Matrix4 v0); - void SetUniformv(const std::string& name, int size, int* value); void SetUniform(const std::string& name, int size, float* value); void SetUniform(const std::string& name, bool value); + void SetUniform(const std::string& name, Texture* texture, uint32_t slot = 0); + void SetUniform(uint32_t uniformSlot, int value); void SetUniform(uint32_t uniformSlot, Matrix4 value); - void SetUniform(const std::string& name, Texture* texture, uint32_t slot); int FindUniformLocation(std::string uniform); diff --git a/Resources/Shaders/ui_panel.shader b/Resources/Shaders/ui_panel.shader new file mode 100644 index 00000000..e69de29b