diff options
Diffstat (limited to 'src/libjin/Graphics/Canvas.cpp')
-rw-r--r-- | src/libjin/Graphics/Canvas.cpp | 54 |
1 files changed, 20 insertions, 34 deletions
diff --git a/src/libjin/Graphics/Canvas.cpp b/src/libjin/Graphics/Canvas.cpp index 99f022d..c88429f 100644 --- a/src/libjin/Graphics/Canvas.cpp +++ b/src/libjin/Graphics/Canvas.cpp @@ -10,6 +10,8 @@ namespace jin namespace graphics { + /*class member*/ GLint Canvas::cur = -1; + /*class member*/ Canvas* Canvas::createCanvas(int w, int h) { return new Canvas(w, h); @@ -18,31 +20,15 @@ namespace graphics Canvas::Canvas(int w, int h) : Drawable(w, h) { - init(); - } - - Canvas::~Canvas() - { - } + vertCoord[0] = 0; vertCoord[1] = 0; + vertCoord[2] = 0; vertCoord[3] = h; + vertCoord[4] = w; vertCoord[5] = h; + vertCoord[6] = w; vertCoord[7] = 0; - /*class member*/ GLint Canvas::cur = -1; - - bool Canvas::init() - { - setVertices( - new float [DRAWABLE_V_SIZE] { - 0, 0, - 0, (float)height, - (float)width, (float)height, - (float)width, 0, - }, - new float [DRAWABLE_V_SIZE] { - 0, 1, - 0, 0, - 1, 0, - 1, 1 - } - ); + textCoord[0] = 0; textCoord[1] = 1; + textCoord[2] = 0; textCoord[3] = 0; + textCoord[4] = 1; textCoord[5] = 0; + textCoord[6] = 1; textCoord[7] = 1; GLint current_fbo; glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, ¤t_fbo); @@ -56,18 +42,18 @@ namespace graphics glBindTexture(GL_TEXTURE_2D, texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); glBindTexture(GL_TEXTURE_2D, 0); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0); GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); - + // unbind framebuffer glBindFramebuffer(GL_FRAMEBUFFER, current_fbo); - - if (status != GL_FRAMEBUFFER_COMPLETE_EXT) - return false; - return true; + } + + Canvas::~Canvas() + { } bool Canvas::hasbind(GLint fbo) @@ -90,8 +76,8 @@ namespace graphics glPushMatrix(); glLoadIdentity(); - glViewport(0, 0, width, height); - glOrtho(0, width, height, 0, -1, 1); + glViewport(0, 0, size.x, size.y); + glOrtho(0, size.x, size.y, 0, -1, 1); // Switch back to modelview matrix glMatrixMode(GL_MODELVIEW); @@ -110,8 +96,8 @@ namespace graphics glBindFramebuffer(GL_FRAMEBUFFER, 0); Window* wnd = Window::get(); - int ww = wnd->getW(), - wh = wnd->getH(); + int ww = wnd->getW(); + int wh = wnd->getH(); glViewport(0, 0, ww, wh); |