aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/graphics/je_gl.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-12-24 21:02:12 +0800
committerchai <chaifix@163.com>2018-12-24 21:02:12 +0800
commit8f2ba3f1b11f30cdb7d41bf2e5c5dc141fba76d4 (patch)
treef36138310b5ca7a8e58b3af9547335a11d5d79c8 /src/libjin/graphics/je_gl.cpp
parent039e2541207232e0a382a52a65122a15eed9257d (diff)
*屏幕特效(post processing)
Diffstat (limited to 'src/libjin/graphics/je_gl.cpp')
-rw-r--r--src/libjin/graphics/je_gl.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libjin/graphics/je_gl.cpp b/src/libjin/graphics/je_gl.cpp
index 24b0a48..aeaa663 100644
--- a/src/libjin/graphics/je_gl.cpp
+++ b/src/libjin/graphics/je_gl.cpp
@@ -18,7 +18,7 @@ namespace JinEngine
OpenGL gl;
- const Canvas* const OpenGL::DEFAULT_CANVAS = new Canvas(0);
+ Canvas* const OpenGL::DEFAULT_CANVAS = new Canvas(0);
OpenGL::OpenGL()
: mBlendMode(BlendMode::NONE)
@@ -262,6 +262,7 @@ namespace JinEngine
case BlendMode::ADDITIVE:
srcRGB = GL_SRC_ALPHA;
dstRGB = GL_ONE;
+ dstA = GL_ONE;
break;
case BlendMode::PREMULTIPLIEDALPHA:
srcRGB = srcA = GL_ONE;
@@ -316,6 +317,11 @@ namespace JinEngine
mCanvas = canvas;
+ gl.enable(GL_BLEND);
+ gl.enable(GL_TEXTURE_2D);
+
+ gl.setBlendMode(OpenGL::BlendMode::ALPHA);
+
++mStats.canvasSwitches;
}
}
@@ -340,7 +346,7 @@ namespace JinEngine
glViewport(0, 0, w, h);
gl.setProjectionMatrix(0, w, h, 0, -1, 1);
- mCanvas = nullptr;
+ mCanvas = DEFAULT_CANVAS;
}
Canvas* OpenGL::getCanvas()