diff options
author | chai <chaifix@163.com> | 2018-12-24 21:02:12 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-12-24 21:02:12 +0800 |
commit | 8f2ba3f1b11f30cdb7d41bf2e5c5dc141fba76d4 (patch) | |
tree | f36138310b5ca7a8e58b3af9547335a11d5d79c8 /src/libjin/graphics/shaders | |
parent | 039e2541207232e0a382a52a65122a15eed9257d (diff) |
*屏幕特效(post processing)
Diffstat (limited to 'src/libjin/graphics/shaders')
-rw-r--r-- | src/libjin/graphics/shaders/je_jsl_compiler.cpp | 4 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_jsl_compiler.h | 1 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.cpp | 10 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/libjin/graphics/shaders/je_jsl_compiler.cpp b/src/libjin/graphics/shaders/je_jsl_compiler.cpp index 8aacdd0..c5a004e 100644 --- a/src/libjin/graphics/shaders/je_jsl_compiler.cpp +++ b/src/libjin/graphics/shaders/je_jsl_compiler.cpp @@ -45,6 +45,7 @@ namespace JinEngine JinEngine::String SHADER_TEXTURE_COORDS = "jin_TextureCoords"; JinEngine::String SHADER_VERTEX_COLOR = "jin_VertexColor"; JinEngine::String SHADER_TIME = "jin_Time"; + JinEngine::String SHADER_RENDERTARGET_SIZE = "jin_RenderTargetSize"; JinEngine::String SHADER_VERSION = "#version 130 core \n"; JinEngine::String SHADER_DEFINITIONS = // Types @@ -69,7 +70,8 @@ namespace JinEngine "uniform Texture " + SHADER_MAIN_TEXTURE + "; \n" "uniform mat4 " + SHADER_PROJECTION_MATRIX + "; \n" "uniform mat4 " + SHADER_MODELVIEW_MATRIX + "; \n" - "uniform vec2 " + SHADER_TIME + "; \n"; + "uniform vec2 " + SHADER_TIME + "; \n" + "uniform vec2 " + SHADER_RENDERTARGET_SIZE + "; \n"; JinEngine::String JSLCompiler::formatVertexShader(const JinEngine::String& vert) { diff --git a/src/libjin/graphics/shaders/je_jsl_compiler.h b/src/libjin/graphics/shaders/je_jsl_compiler.h index 75c92cf..c61e152 100644 --- a/src/libjin/graphics/shaders/je_jsl_compiler.h +++ b/src/libjin/graphics/shaders/je_jsl_compiler.h @@ -23,6 +23,7 @@ namespace JinEngine extern JinEngine::String SHADER_TEXTURE_COORDS; extern JinEngine::String SHADER_VERTEX_COLOR; extern JinEngine::String SHADER_TIME; + extern JinEngine::String SHADER_RENDERTARGET_SIZE; /// /// Compile JSL into GLSL. diff --git a/src/libjin/graphics/shaders/je_shader.cpp b/src/libjin/graphics/shaders/je_shader.cpp index 5668168..4fa3b9e 100644 --- a/src/libjin/graphics/shaders/je_shader.cpp +++ b/src/libjin/graphics/shaders/je_shader.cpp @@ -8,6 +8,7 @@ #include "../../utils/je_macros.h" #include "../je_gl.h" +#include "../je_window.h" #include "je_jsl_compiler.h" #include "je_shader.h" @@ -78,6 +79,15 @@ namespace JinEngine // Send uniforms. sendInt(SHADER_MAIN_TEXTURE, DEFAULT_TEXTURE_UNIT); sendVec2(SHADER_TIME, Time::getSecond(), Time::getDeltaTime()); + Canvas* rt = gl.getCanvas(); + if (rt == OpenGL::DEFAULT_CANVAS) + { + sendVec2(SHADER_RENDERTARGET_SIZE, Window::get()->getW(), Window::get()->getH()); + } + else if(rt != nullptr) + { + sendVec2(SHADER_RENDERTARGET_SIZE, rt->getWidth(), rt->getHeight()); + } // Reset attribute index. mAttributeIndex = 0; return *this; |