From bcb5f0ca8d029b813a4111cd7e3f5e3a219aa16d Mon Sep 17 00:00:00 2001 From: Jupeyy Date: Tue, 12 Sep 2017 20:09:40 +0200 Subject: [PATCH] add new programs for various gpu render tasks, and some more uniform setter --- src/engine/client/opengl_sl_program.cpp | 4 +++ src/engine/client/opengl_sl_program.h | 34 +++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/engine/client/opengl_sl_program.cpp b/src/engine/client/opengl_sl_program.cpp index 005c66256..677876df8 100644 --- a/src/engine/client/opengl_sl_program.cpp +++ b/src/engine/client/opengl_sl_program.cpp @@ -45,6 +45,10 @@ void CGLSLProgram::SetUniformVec4(int Loc, int Count, const float* Value) { glUniform4fv(Loc, Count, Value); } +void CGLSLProgram::SetUniformVec2(int Loc, int Count, const float* Value) { + glUniform2fv(Loc, Count, Value); +} + void CGLSLProgram::SetUniform(int Loc, const int Value) { glUniform1i(Loc, Value); } diff --git a/src/engine/client/opengl_sl_program.h b/src/engine/client/opengl_sl_program.h index f67866340..a067c0ab7 100644 --- a/src/engine/client/opengl_sl_program.h +++ b/src/engine/client/opengl_sl_program.h @@ -18,6 +18,7 @@ public: void DetachShader(CGLSL* pShader); //Support various types + void SetUniformVec2(int Loc, int Count, const float* Value); void SetUniformVec4(int Loc, int Count, const float* Value); void SetUniform(int Loc, const int Value); void SetUniform(int Loc, const unsigned int Value); @@ -35,10 +36,39 @@ protected: bool m_IsLinked; }; -class CGLSLQuadProgram : public CGLSLProgram { -public: +class CGLSLTWProgram : public CGLSLProgram { +public: int m_LocPos; int m_LocIsTextured; int m_LocTextureSampler; +}; + +class CGLSLQuadProgram : public CGLSLTWProgram { +public: +}; + +class CGLSLPrimitiveProgram : public CGLSLTWProgram { +public: + +}; + +class CGLSLTileProgram : public CGLSLTWProgram { +public: + int m_LocColor; + int m_LocZoomFactor; +}; + +class CGLSLBorderTileProgram : public CGLSLTileProgram { +public: + int m_LocOffset; + int m_LocDir; + int m_LocNum; + int m_LocJumpIndex; +}; + +class CGLSLBorderTileLineProgram : public CGLSLTileProgram { +public: + int m_LocDir; + int m_LocNum; }; \ No newline at end of file