diff options
Diffstat (limited to 'src/libjin/graphics/je_gl.cpp')
-rw-r--r-- | src/libjin/graphics/je_gl.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/libjin/graphics/je_gl.cpp b/src/libjin/graphics/je_gl.cpp index d7a79d4..b0f113b 100644 --- a/src/libjin/graphics/je_gl.cpp +++ b/src/libjin/graphics/je_gl.cpp @@ -21,7 +21,6 @@ namespace JinEngine Canvas* const OpenGL::DEFAULT_CANVAS = new Canvas(0); OpenGL::OpenGL() - : mBlendMode(BlendMode::NONE) { memset(&mStats, 0, sizeof(mStats)); memset(&mColor, 0xff, sizeof(mColor)); @@ -36,6 +35,17 @@ namespace JinEngine { } + void OpenGL::init() + { + enable(GL_BLEND); + enable(GL_TEXTURE_2D); + setClearColor(0, 0, 0, 0xff); + setColor(0xff, 0xff, 0xff, 0xff); + setBlendMode(OpenGL::BlendMode::ALPHA); + unbindCanvas(); + unuseShader(); + } + void OpenGL::enable(GLenum cap) { glEnable(cap); @@ -263,6 +273,7 @@ namespace JinEngine { case BlendMode::ADDITIVE: srcRGB = GL_SRC_ALPHA; + srcA = GL_SRC_ALPHA; dstRGB = GL_ONE; dstA = GL_ONE; break; @@ -272,15 +283,10 @@ namespace JinEngine break; case BlendMode::ALPHA: default: - /*srcRGB = GL_SRC_ALPHA; - srcA = GL_ONE; + srcRGB = GL_SRC_ALPHA; // 0xff, 0xff, 0xff, 0Ⱦ⣬GL_ONEЩᱣ + srcA = GL_SRC_ALPHA; dstRGB = GL_ONE_MINUS_SRC_ALPHA; dstA = GL_ONE_MINUS_SRC_ALPHA; -*/ - srcRGB = GL_ONE; - srcA = GL_ONE; - dstRGB = GL_ZERO; - dstA = GL_ZERO; break; } |