aboutsummaryrefslogtreecommitdiff
path: root/src/libjin
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin')
-rw-r--r--src/libjin/graphics/fonts/je_texture_font.cpp4
-rw-r--r--src/libjin/graphics/fonts/je_ttf.cpp14
-rw-r--r--src/libjin/graphics/je_canvas.cpp4
-rw-r--r--src/libjin/graphics/je_gl.cpp7
-rw-r--r--src/libjin/graphics/je_gl.h6
-rw-r--r--src/libjin/graphics/je_graphic.cpp16
-rw-r--r--src/libjin/graphics/je_mesh.cpp4
-rw-r--r--src/libjin/graphics/je_window.cpp3
-rw-r--r--src/libjin/graphics/shaders/je_jsl_compiler.cpp2
-rw-r--r--src/libjin/graphics/shaders/je_shader.cpp23
10 files changed, 34 insertions, 49 deletions
diff --git a/src/libjin/graphics/fonts/je_texture_font.cpp b/src/libjin/graphics/fonts/je_texture_font.cpp
index 49ac797..52d9603 100644
--- a/src/libjin/graphics/fonts/je_texture_font.cpp
+++ b/src/libjin/graphics/fonts/je_texture_font.cpp
@@ -284,9 +284,9 @@ namespace JinEngine
const GlyphArrayDrawInfo& info = glyphinfolist[i];
shader->uploadVertices(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x)
.uploadUV(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u);
- gl.bindTexture(info.texture);
+ gl.bindTexture2D(info.texture);
gl.drawArrays(GL_QUADS, 0, info.count);
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
}
shader->end();
}
diff --git a/src/libjin/graphics/fonts/je_ttf.cpp b/src/libjin/graphics/fonts/je_ttf.cpp
index 89aa096..7c40e7b 100644
--- a/src/libjin/graphics/fonts/je_ttf.cpp
+++ b/src/libjin/graphics/fonts/je_ttf.cpp
@@ -197,7 +197,7 @@ namespace JinEngine
GLuint t;
gl.flushError();
t = gl.genTexture();
- gl.bindTexture(t);
+ gl.bindTexture2D(t);
gl.setTexParameter(GL_TEXTURE_MAG_FILTER, GL_LINEAR);
gl.setTexParameter(GL_TEXTURE_MIN_FILTER, GL_LINEAR);
gl.setTexParameter(GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
@@ -206,11 +206,11 @@ namespace JinEngine
if (glGetError() != GL_NO_ERROR)
{
glDeleteTextures(1, &t);
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
return 0;
}
atlases.push_back(t);
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
return t;
}
@@ -303,9 +303,9 @@ namespace JinEngine
const GlyphArrayDrawInfo& info = glyphinfolist[i];
shader->uploadVertices(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x)
.uploadUV(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u);
- gl.bindTexture(info.texture);
+ gl.bindTexture2D(info.texture);
gl.drawArrays(GL_QUADS, 0, info.count);
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
}
shader->end();
}
@@ -422,9 +422,9 @@ namespace JinEngine
cursor.y() = 0;
}
}
- gl.bindTexture(atlas);
+ gl.bindTexture2D(atlas);
gl.texSubImage(cursor.x() + xoff, cursor.y() + yoff + baseline, w, h, GL_RGBA, GL_UNSIGNED_BYTE, bitmap);
- gl.bindTexture();
+ gl.bindTexture2D();
delete[] bitmap;
}
TTFGlyph glyph;
diff --git a/src/libjin/graphics/je_canvas.cpp b/src/libjin/graphics/je_canvas.cpp
index d52bdfd..9437e9a 100644
--- a/src/libjin/graphics/je_canvas.cpp
+++ b/src/libjin/graphics/je_canvas.cpp
@@ -28,11 +28,11 @@ namespace JinEngine
// Render texture.
GLuint texture = getGLTexture();
- gl.bindTexture(texture);
+ gl.bindTexture2D(texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
gl.texImage(GL_RGBA8, w, h, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
diff --git a/src/libjin/graphics/je_gl.cpp b/src/libjin/graphics/je_gl.cpp
index bbe82a8..3ce869a 100644
--- a/src/libjin/graphics/je_gl.cpp
+++ b/src/libjin/graphics/je_gl.cpp
@@ -38,7 +38,7 @@ namespace JinEngine
void OpenGL::init()
{
enable(GL_BLEND);
- enable(GL_TEXTURE_2D);
+ //enable(GL_TEXTURE_2D);
setClearColor(0, 0, 0, 0xff);
setColor(0xff, 0xff, 0xff, 0xff);
setBlendMode(OpenGL::BlendMode::ALPHA);
@@ -78,7 +78,7 @@ namespace JinEngine
return t;
}
- void OpenGL::bindTexture(GLuint texture)
+ void OpenGL::bindTexture2D(GLuint texture)
{
glBindTexture(GL_TEXTURE_2D, texture);
}
@@ -103,13 +103,12 @@ namespace JinEngine
glTexSubImage2D(GL_TEXTURE_2D, 0, xoffset, yoffset, width, height, format, type, pixels);
}
- void OpenGL::activeTexUnit(unsigned int unit)
+ void OpenGL::activeTextureUnit(unsigned int unit)
{
// glActiveTexture selects which texture unit subsequent texture state calls will affect.
glActiveTexture(GL_TEXTURE0 + unit);
}
-
void OpenGL::drawArrays(GLenum mode, GLint first, GLsizei count)
{
glDrawArrays(mode, first, count);
diff --git a/src/libjin/graphics/je_gl.h b/src/libjin/graphics/je_gl.h
index 8711824..090003c 100644
--- a/src/libjin/graphics/je_gl.h
+++ b/src/libjin/graphics/je_gl.h
@@ -73,9 +73,7 @@ namespace JinEngine
void deleteTexture(GLuint texture);
- void bindTexture(GLuint texture = 0);
-
- GLuint curTexture();
+ void bindTexture2D(GLuint texture = 0);
void setTexParameter(GLenum pname, GLint param);
@@ -83,7 +81,7 @@ namespace JinEngine
void texSubImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
- void activeTexUnit(unsigned int unit = 0);
+ void activeTextureUnit(unsigned int unit = 0);
void drawArrays(GLenum mode, GLint first, GLsizei count);
diff --git a/src/libjin/graphics/je_graphic.cpp b/src/libjin/graphics/je_graphic.cpp
index e2c22d1..ed9d458 100644
--- a/src/libjin/graphics/je_graphic.cpp
+++ b/src/libjin/graphics/je_graphic.cpp
@@ -33,11 +33,11 @@ namespace JinEngine
const Color* pixels = bitmap->getPixels();
mTexture = gl.genTexture();
- gl.bindTexture(mTexture);
+ gl.bindTexture2D(mTexture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
gl.texImage(GL_RGBA8, mSize.w(), mSize.h(), GL_RGBA, GL_UNSIGNED_BYTE, pixels);
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
}
Graphic::~Graphic()
@@ -47,10 +47,10 @@ namespace JinEngine
void Graphic::setFilter(GLint min_filter, GLint max_filter)
{
- gl.bindTexture(mTexture);
+ gl.bindTexture2D(mTexture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, max_filter);
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
}
void Graphic::render(float x, float y, float sx, float sy, float r, float ox, float oy) const
@@ -77,9 +77,9 @@ namespace JinEngine
.uploadVertices(2, GL_FLOAT, 0, vertexCoords)
.uploadUV(2, GL_FLOAT, 0, textureCoords);
- gl.bindTexture(getGLTexture());
+ gl.bindTexture2D(getGLTexture());
gl.drawArrays(GL_QUADS, 0, 4);
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
shader->end();
}
@@ -113,9 +113,9 @@ namespace JinEngine
.uploadVertices(2, GL_FLOAT, 0, vertexCoords)
.uploadUV(2, GL_FLOAT, 0, textureCoords);
- gl.bindTexture(getGLTexture());
+ gl.bindTexture2D(getGLTexture());
gl.drawArrays(GL_QUADS, 0, 4);
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
shader->end();
}
diff --git a/src/libjin/graphics/je_mesh.cpp b/src/libjin/graphics/je_mesh.cpp
index e3bebe6..08cbfa8 100644
--- a/src/libjin/graphics/je_mesh.cpp
+++ b/src/libjin/graphics/je_mesh.cpp
@@ -67,9 +67,9 @@ namespace JinEngine
.uploadUV(2, GL_FLOAT, sizeof(Vertex), &(mVertices[0].uv))
.uploadColor(4, GL_UNSIGNED_BYTE, sizeof(Vertex), &(mVertices[0].color), GL_TRUE);
- gl.bindTexture(mGraphic->getGLTexture());
+ gl.bindTexture2D(mGraphic->getGLTexture());
gl.drawArrays(GL_POLYGON, 0, mVertices.size());
- gl.bindTexture(0);
+ gl.bindTexture2D(0);
shader->end();
};
diff --git a/src/libjin/graphics/je_window.cpp b/src/libjin/graphics/je_window.cpp
index 25d003f..1ccf1fb 100644
--- a/src/libjin/graphics/je_window.cpp
+++ b/src/libjin/graphics/je_window.cpp
@@ -97,9 +97,6 @@ namespace JinEngine
{
jin_log_info("Quit window system.");
- gl.disable(GL_BLEND);
- gl.disable(GL_TEXTURE_2D);
-
SDL_DestroyWindow(mWnd);
}
diff --git a/src/libjin/graphics/shaders/je_jsl_compiler.cpp b/src/libjin/graphics/shaders/je_jsl_compiler.cpp
index 8904b96..4b48a85 100644
--- a/src/libjin/graphics/shaders/je_jsl_compiler.cpp
+++ b/src/libjin/graphics/shaders/je_jsl_compiler.cpp
@@ -66,7 +66,7 @@ namespace JinEngine
"}; \n"
"\n";
JinEngine::String SHADER_UNIFORMS =
- "uniform Texture " + SHADER_MAIN_TEXTURE + "; \n"
+ "uniform Texture " + SHADER_MAIN_TEXTURE + "; \n" // Main texture goes first.
"uniform mat4 " + SHADER_PROJECTION_MATRIX + "; \n"
"uniform mat4 " + SHADER_MODELVIEW_MATRIX + "; \n"
"uniform vec2 " + SHADER_TIME + "; \n"
diff --git a/src/libjin/graphics/shaders/je_shader.cpp b/src/libjin/graphics/shaders/je_shader.cpp
index 0803e65..8ebca8c 100644
--- a/src/libjin/graphics/shaders/je_shader.cpp
+++ b/src/libjin/graphics/shaders/je_shader.cpp
@@ -56,14 +56,13 @@ namespace JinEngine
// it clear to anybody reading your code that you really mean to sample from
// texture unit 0, and did not just forget to set the value.
//
- const int DEFAULT_TEXTURE_UNIT = 0;
+ const int MAIN_TEXTURE_UNIT = 0;
static GLint textureUnit = 0;
GLint Shader::mAttributeIndex = 0;
Shader::Shader(const string& program)
- //: mCurrentTextureUnit(DEFAULT_TEXTURE_UNIT)
{
if (!compile(program))
{
@@ -83,10 +82,10 @@ namespace JinEngine
Shader& Shader::begin()
{
- textureUnit = DEFAULT_TEXTURE_UNIT;
+ textureUnit = MAIN_TEXTURE_UNIT;
// Send uniforms.
- sendInt(SHADER_MAIN_TEXTURE, DEFAULT_TEXTURE_UNIT);
+ sendInt(SHADER_MAIN_TEXTURE, MAIN_TEXTURE_UNIT);
sendVec2(SHADER_TIME, Time::getSecond(), Time::getDeltaTime());
Canvas* rt = gl.getCanvas();
if (rt == OpenGL::DEFAULT_CANVAS)
@@ -157,14 +156,6 @@ namespace JinEngine
GLint Shader::claimTextureUnit(/*const std::string& name*/)
{
- //std::map<std::string, GLint>::iterator unit = mTextureUnits.find(name);
- //if (unit != mTextureUnits.end())
- // return unit->second;
- //static GLint MAX_TEXTURE_UNITS = getMaxTextureUnits();
- //if (++mCurrentTextureUnit >= MAX_TEXTURE_UNITS)
- // return 0;
- //mTextureUnits[name] = mCurrentTextureUnit;
- //return mCurrentTextureUnit;
return textureUnit++;
}
@@ -224,10 +215,10 @@ namespace JinEngine
// TODO: 쳣󶨵
return *this;
}
- gl.activeTexUnit(unit);
+ gl.activeTextureUnit(unit);
glUniform1i(location, unit);
- gl.bindTexture(tex->getGLTexture());
- gl.activeTexUnit(0);
+ gl.bindTexture2D(tex->getGLTexture());
+ gl.activeTextureUnit(MAIN_TEXTURE_UNIT);
return *this;
}
@@ -245,7 +236,7 @@ namespace JinEngine
}
glUniform1i(location, unit);
glActiveTexture(GL_TEXTURE0 + unit);
- gl.bindTexture(canvas->getGLTexture());
+ gl.bindTexture2D(canvas->getGLTexture());
glActiveTexture(GL_TEXTURE0);
return *this;