diff options
author | Piotr Dziwinski <piotrdz@gmail.com> | 2012-07-23 21:41:27 +0200 |
---|---|---|
committer | Piotr Dziwinski <piotrdz@gmail.com> | 2012-07-23 21:41:27 +0200 |
commit | 9d592045317ca66be415e60ba4c2db90b5d7ad3e (patch) | |
tree | 921dd92c63b6260ea27d70eb7521e3a054d7f142 /src/graphics/opengl/gldevice.cpp | |
parent | 8797569d33c4917eb8f8a1dc2341aac7b5815315 (diff) | |
download | colobot-9d592045317ca66be415e60ba4c2db90b5d7ad3e.tar.gz colobot-9d592045317ca66be415e60ba4c2db90b5d7ad3e.tar.bz2 colobot-9d592045317ca66be415e60ba4c2db90b5d7ad3e.zip |
Cursor drawing
- fixed cursor drawing in CEngine
- changed event loop to generate more events
Diffstat (limited to 'src/graphics/opengl/gldevice.cpp')
-rw-r--r-- | src/graphics/opengl/gldevice.cpp | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/graphics/opengl/gldevice.cpp b/src/graphics/opengl/gldevice.cpp index 3d63bf2..5f684e6 100644 --- a/src/graphics/opengl/gldevice.cpp +++ b/src/graphics/opengl/gldevice.cpp @@ -658,7 +658,7 @@ Gfx::Color Gfx::CGLDevice::GetTextureFactor() return Gfx::Color(color[0], color[1], color[2], color[3]); } -void Gfx::CGLDevice::DrawPrimitive(Gfx::PrimitiveType type, Vertex *vertices, int vertexCount) +void Gfx::CGLDevice::DrawPrimitive(Gfx::PrimitiveType type, const Vertex *vertices, int vertexCount) { if (type == Gfx::PRIMITIVE_LINES) glBegin(GL_LINES); @@ -671,15 +671,15 @@ void Gfx::CGLDevice::DrawPrimitive(Gfx::PrimitiveType type, Vertex *vertices, in for (int i = 0; i < vertexCount; ++i) { - glNormal3fv((GLfloat*)vertices[i].normal.Array()); - glMultiTexCoord2fvARB(GL_TEXTURE0_ARB, (GLfloat*)vertices[i].texCoord.Array()); - glVertex3fv((GLfloat*)vertices[i].coord.Array()); + glNormal3fv(const_cast<GLfloat*>(vertices[i].normal.Array())); + glMultiTexCoord2fvARB(GL_TEXTURE0_ARB, const_cast<GLfloat*>(vertices[i].texCoord.Array())); + glVertex3fv(const_cast<GLfloat*>(vertices[i].coord.Array())); } glEnd(); } -void Gfx::CGLDevice::DrawPrimitive(Gfx::PrimitiveType type, Gfx::VertexCol *vertices, int vertexCount) +void Gfx::CGLDevice::DrawPrimitive(Gfx::PrimitiveType type, const Gfx::VertexCol *vertices, int vertexCount) { if (type == Gfx::PRIMITIVE_LINES) glBegin(GL_LINES); @@ -690,16 +690,16 @@ void Gfx::CGLDevice::DrawPrimitive(Gfx::PrimitiveType type, Gfx::VertexCol *vert for (int i = 0; i < vertexCount; ++i) { - glColor4fv((GLfloat*)vertices[i].color.Array()); - glSecondaryColor3fv((GLfloat*)vertices[i].specular.Array()); - glMultiTexCoord2fvARB(GL_TEXTURE0_ARB, (GLfloat*)vertices[i].texCoord.Array()); - glVertex3fv((GLfloat*)vertices[i].coord.Array()); + glColor4fv(const_cast<GLfloat*>(vertices[i].color.Array())); + glSecondaryColor3fv(const_cast<GLfloat*>(vertices[i].specular.Array())); + glMultiTexCoord2fvARB(GL_TEXTURE0_ARB, const_cast<GLfloat*>(vertices[i].texCoord.Array())); + glVertex3fv(const_cast<GLfloat*>(vertices[i].coord.Array())); } glEnd(); } -void Gfx::CGLDevice::DrawPrimitive(Gfx::PrimitiveType type, VertexTex2 *vertices, int vertexCount) +void Gfx::CGLDevice::DrawPrimitive(Gfx::PrimitiveType type, const VertexTex2 *vertices, int vertexCount) { if (type == Gfx::PRIMITIVE_LINES) glBegin(GL_LINES); @@ -708,12 +708,14 @@ void Gfx::CGLDevice::DrawPrimitive(Gfx::PrimitiveType type, VertexTex2 *vertices else if (type == Gfx::PRIMITIVE_TRIANGLE_STRIP) glBegin(GL_TRIANGLE_STRIP); + glColor3f(1.0f, 1.0f, 1.0f); + for (int i = 0; i < vertexCount; ++i) { - glNormal3fv((GLfloat*) vertices[i].normal.Array()); - glMultiTexCoord2fARB(GL_TEXTURE0_ARB, vertices[i].texCoord.x, vertices[i].texCoord.y); - glMultiTexCoord2fARB(GL_TEXTURE1_ARB, vertices[i].texCoord2.x, vertices[i].texCoord2.y); - glVertex3fv((GLfloat*) vertices[i].coord.Array()); + glNormal3fv(const_cast<GLfloat*>(vertices[i].normal.Array())); + glMultiTexCoord2fvARB(GL_TEXTURE0_ARB, const_cast<GLfloat*>(vertices[i].texCoord.Array())); + glMultiTexCoord2fvARB(GL_TEXTURE1_ARB, const_cast<GLfloat*>(vertices[i].texCoord.Array())); + glVertex3fv(const_cast<GLfloat*>(vertices[i].coord.Array())); } glEnd(); |