diff options
Diffstat (limited to 'src/libjin')
-rw-r--r-- | src/libjin/graphics/fonts/je_texture_font.cpp | 4 | ||||
-rw-r--r-- | src/libjin/graphics/fonts/je_ttf.cpp | 14 | ||||
-rw-r--r-- | src/libjin/graphics/je_canvas.cpp | 4 | ||||
-rw-r--r-- | src/libjin/graphics/je_gl.cpp | 7 | ||||
-rw-r--r-- | src/libjin/graphics/je_gl.h | 6 | ||||
-rw-r--r-- | src/libjin/graphics/je_graphic.cpp | 16 | ||||
-rw-r--r-- | src/libjin/graphics/je_mesh.cpp | 4 | ||||
-rw-r--r-- | src/libjin/graphics/je_window.cpp | 3 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_jsl_compiler.cpp | 2 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.cpp | 23 |
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; |