aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/graphics')
-rw-r--r--src/libjin/graphics/je_gl.cpp22
-rw-r--r--src/libjin/graphics/je_gl.h9
-rw-r--r--src/libjin/graphics/je_window.cpp10
3 files changed, 20 insertions, 21 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;
}
diff --git a/src/libjin/graphics/je_gl.h b/src/libjin/graphics/je_gl.h
index d6edc2f..8711824 100644
--- a/src/libjin/graphics/je_gl.h
+++ b/src/libjin/graphics/je_gl.h
@@ -32,10 +32,9 @@ namespace JinEngine
///
enum class BlendMode
{
- NONE = 0,
- ALPHA,
- ADDITIVE,
- PREMULTIPLIEDALPHA,
+ ALPHA = 1,
+ ADDITIVE = 2,
+ PREMULTIPLIEDALPHA = 3,
};
struct Stats
@@ -56,6 +55,8 @@ namespace JinEngine
OpenGL();
~OpenGL();
+ void init();
+
void enable(GLenum cap);
void disable(GLenum cap);
diff --git a/src/libjin/graphics/je_window.cpp b/src/libjin/graphics/je_window.cpp
index f41e699..25d003f 100644
--- a/src/libjin/graphics/je_window.cpp
+++ b/src/libjin/graphics/je_window.cpp
@@ -88,15 +88,7 @@ namespace JinEngine
SDL_GL_SetSwapInterval(vsync ? 1 : 0);
SDL_GL_MakeCurrent(mWnd, ctx);
// Default configuration.
- gl.enable(GL_BLEND);
- gl.enable(GL_TEXTURE_2D);
- gl.setClearColor(0, 0, 0, 0);
- gl.setColor(0xff, 0xff, 0xff, 0xff);
- // Default blend function.
- gl.setBlendMode(OpenGL::BlendMode::ALPHA);
- // Bind to default canvas.
- gl.unbindCanvas();
- gl.unuseShader();
+ gl.init();
return true;
}