[Libufo-commits] ufo-0.5/src/gl ugl_graphics.cpp,1.15,1.16
Status: Beta
Brought to you by:
schmidtjf
|
From: Johannes S. <sch...@us...> - 2005-10-24 15:56:17
|
Update of /cvsroot/libufo/ufo-0.5/src/gl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30940/src/gl Modified Files: ugl_graphics.cpp Log Message: Adding support for smooth colored triangles. Index: ugl_graphics.cpp =================================================================== RCS file: /cvsroot/libufo/ufo-0.5/src/gl/ugl_graphics.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** ugl_graphics.cpp 11 Oct 2005 20:22:06 -0000 1.15 --- ugl_graphics.cpp 24 Oct 2005 15:56:06 -0000 1.16 *************** *** 440,449 **** // basic drawing operations // ! static float add_width = 0.5f; void UGL_Graphics::drawRect(const URectangle & rect) { // -1 is correct, as lines are drawn like rectangles with // width 1 measured in y direction ! ugl_driver->glTranslatef(add_width, add_width, 0); ugl_driver->glBegin(GL_LINE_LOOP); ugl_driver->glVertex2i(rect.x, rect.y); --- 440,449 ---- // basic drawing operations // ! static float ufo_line_add = 0.5f; void UGL_Graphics::drawRect(const URectangle & rect) { // -1 is correct, as lines are drawn like rectangles with // width 1 measured in y direction ! ugl_driver->glTranslatef(ufo_line_add, ufo_line_add, 0); ugl_driver->glBegin(GL_LINE_LOOP); ugl_driver->glVertex2i(rect.x, rect.y); *************** *** 452,456 **** ugl_driver->glVertex2i(rect.x + rect.w - 1, rect.y); ugl_driver->glEnd(); ! ugl_driver->glTranslatef(-add_width, -add_width, 0); } --- 452,456 ---- ugl_driver->glVertex2i(rect.x + rect.w - 1, rect.y); ugl_driver->glEnd(); ! ugl_driver->glTranslatef(-ufo_line_add, -ufo_line_add, 0); } *************** *** 462,483 **** void UGL_Graphics::drawLine(const UPoint & p1, const UPoint & p2) { ! ugl_driver->glTranslatef(add_width, add_width, 0); ugl_driver->glBegin(GL_LINES); ugl_driver->glVertex2i(p1.x, p1.y); ugl_driver->glVertex2i(p2.x, p2.y); ugl_driver->glEnd(); ! ugl_driver->glTranslatef(-add_width, -add_width, 0); } void UGL_Graphics::drawVertexArray(VertexType type, UVertexArray * buffer) { int glType; switch (type) { case Lines: glType = GL_LINES; - ugl_driver->glTranslatef(add_width, add_width, 0); break; case LineStrip: glType = GL_LINE_STRIP; ! ugl_driver->glTranslatef(add_width, add_width, 0); break; case Triangles: --- 462,483 ---- void UGL_Graphics::drawLine(const UPoint & p1, const UPoint & p2) { ! ugl_driver->glTranslatef(ufo_line_add, ufo_line_add, 0); ugl_driver->glBegin(GL_LINES); ugl_driver->glVertex2i(p1.x, p1.y); ugl_driver->glVertex2i(p2.x, p2.y); ugl_driver->glEnd(); ! ugl_driver->glTranslatef(-ufo_line_add, -ufo_line_add, 0); } void UGL_Graphics::drawVertexArray(VertexType type, UVertexArray * buffer) { int glType; + ugl_driver->glTranslatef(ufo_line_add, ufo_line_add, 0); switch (type) { case Lines: glType = GL_LINES; break; case LineStrip: glType = GL_LINE_STRIP; ! //ugl_driver->glTranslatef(ufo_line_add, ufo_line_add, 0); break; case Triangles: *************** *** 498,512 **** ugl_driver->glDrawArrays(glType, 0, buffer->getCount()); } else if (buffer->getType() == UVertexArray::C3F_V3F) { ugl_driver->glInterleavedArrays(GL_C3F_V3F, 0, buffer->getArray()); ugl_driver->glDrawArrays(glType, 0, buffer->getCount()); } switch (type) { case Lines: glType = GL_LINES; - ugl_driver->glTranslatef(-add_width, -add_width, 0); break; case LineStrip: glType = GL_LINE_STRIP; ! ugl_driver->glTranslatef(-add_width, -add_width, 0); break; } --- 498,514 ---- ugl_driver->glDrawArrays(glType, 0, buffer->getCount()); } else if (buffer->getType() == UVertexArray::C3F_V3F) { + ugl_driver->glShadeModel(GL_SMOOTH); ugl_driver->glInterleavedArrays(GL_C3F_V3F, 0, buffer->getArray()); ugl_driver->glDrawArrays(glType, 0, buffer->getCount()); + ugl_driver->glShadeModel(GL_FLAT); } + ugl_driver->glTranslatef(-ufo_line_add, -ufo_line_add, 0); switch (type) { case Lines: glType = GL_LINES; break; case LineStrip: glType = GL_LINE_STRIP; ! //ugl_driver->glTranslatef(-ufo_line_add, -ufo_line_add, 0); break; } |