aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics/Canvas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Graphics/Canvas.cpp')
-rw-r--r--src/libjin/Graphics/Canvas.cpp54
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, &current_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);