| @@ -16,6 +16,7 @@ liblol_a_SOURCES = \ | |||||
| eglapp.cpp eglapp.h \ | eglapp.cpp eglapp.h \ | ||||
| \ | \ | ||||
| loldebug.h debugfps.cpp debugfps.h debugsphere.cpp debugsphere.h \ | loldebug.h debugfps.cpp debugfps.h debugsphere.cpp debugsphere.h \ | ||||
| debugrecord.cpp debugrecord.h debugstats.cpp debugstats.h | |||||
| debugrecord.cpp debugrecord.h debugstats.cpp debugstats.h \ | |||||
| debugquad.cpp debugquad.h | |||||
| liblol_a_CPPFLAGS = @LOL_CFLAGS@ | liblol_a_CPPFLAGS = @LOL_CFLAGS@ | ||||
| @@ -0,0 +1,183 @@ | |||||
| // | |||||
| // Lol Engine | |||||
| // | |||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||||
| // | |||||
| #if defined HAVE_CONFIG_H | |||||
| # include "config.h" | |||||
| #endif | |||||
| #include <cstdio> | |||||
| #include <cmath> | |||||
| #include "core.h" | |||||
| #include "lolgl.h" | |||||
| #include "loldebug.h" | |||||
| namespace lol | |||||
| { | |||||
| /* | |||||
| * DebugTri implementation class | |||||
| */ | |||||
| class DebugTriData | |||||
| { | |||||
| friend class DebugTri; | |||||
| private: | |||||
| int initialised; | |||||
| #if defined HAVE_GL_2X || defined HAVE_GLES_2X | |||||
| GLuint buflist[2]; | |||||
| Shader *shader; | |||||
| #elif defined HAVE_GL_1X || defined HAVE_GLES_1X | |||||
| GLuint buflist[2]; | |||||
| #endif | |||||
| }; | |||||
| /* | |||||
| * Public DebugTri class | |||||
| */ | |||||
| DebugTri::DebugTri() | |||||
| : data(new DebugTriData()) | |||||
| { | |||||
| data->initialised = 0; | |||||
| } | |||||
| void DebugTri::TickGame(float deltams) | |||||
| { | |||||
| Entity::TickGame(deltams); | |||||
| } | |||||
| void DebugTri::TickDraw(float deltams) | |||||
| { | |||||
| Entity::TickDraw(deltams); | |||||
| if (IsDestroying()) | |||||
| { | |||||
| if (data->initialised) | |||||
| { | |||||
| #if defined HAVE_GL_2X || defined HAVE_GLES_2X | |||||
| glDeleteBuffers(2, data->buflist); | |||||
| Shader::Destroy(data->shader); | |||||
| #elif defined HAVE_GL_1X || defined HAVE_GLES_1X | |||||
| glDeleteBuffers(2, data->buflist); | |||||
| #endif | |||||
| data->initialised = 0; | |||||
| } | |||||
| } | |||||
| else if (!data->initialised) | |||||
| { | |||||
| #if defined HAVE_GL_2X || defined HAVE_GLES_2X | |||||
| glGenBuffers(2, data->buflist); | |||||
| static char const *vertexshader = | |||||
| "#version 130\n" | |||||
| "in vec2 in_Position;\n" | |||||
| "in vec3 in_Color;\n" | |||||
| "out vec3 pass_Color;\n" | |||||
| "void main()\n" | |||||
| "{\n" | |||||
| " gl_Position = vec4(in_Position, 0.0f, 1.0f);\n" | |||||
| " pass_Color = in_Color;\n" | |||||
| "}\n"; | |||||
| static char const *fragmentshader = | |||||
| "#version 130\n" | |||||
| "in vec3 pass_Color;\n" | |||||
| "void main()\n" | |||||
| "{\n" | |||||
| " gl_FragColor = vec4(pass_Color, 1.0);\n" | |||||
| "}\n"; | |||||
| data->shader = Shader::Create(vertexshader, fragmentshader); | |||||
| #elif defined HAVE_GL_1X || defined HAVE_GLES_1X | |||||
| glGenBuffers(2, data->buflist); | |||||
| #endif | |||||
| data->initialised = 1; | |||||
| } | |||||
| static GLfloat const verts[6][2] = | |||||
| { | |||||
| { -0.9f, 0.9f }, { 0.9f, 0.9f }, { -0.9f, -0.9f }, | |||||
| { -0.9f, -0.9f }, { 0.9f, 0.9f }, { 0.9f, -0.9f }, | |||||
| }; | |||||
| static GLfloat const cols[6][4] = | |||||
| { | |||||
| { 0.8f, 0.2f, 0.2f, 1.0f }, { 0.2f, 0.2f, 0.8f, 1.0f }, { 0.8f, 0.8f, 0.2f, 1.0f }, | |||||
| { 0.8f, 0.8f, 0.2f, 1.0f }, { 0.2f, 0.2f, 0.8f, 1.0f }, { 0.2f, 0.8f, 0.2f, 1.0f }, | |||||
| }; | |||||
| #if defined HAVE_GL_2X || defined HAVE_GLES_2X | |||||
| data->shader->Bind(); | |||||
| GLuint attr_pos, attr_col; | |||||
| attr_pos = data->shader->GetAttribLocation("in_Position"); | |||||
| attr_col = data->shader->GetAttribLocation("in_Color"); | |||||
| glEnableVertexAttribArray(attr_pos); | |||||
| glEnableVertexAttribArray(attr_col); | |||||
| glBindBuffer(GL_ARRAY_BUFFER, data->buflist[0]); | |||||
| glBufferData(GL_ARRAY_BUFFER, 12 * sizeof(GLfloat), verts, GL_STATIC_DRAW); | |||||
| glVertexAttribPointer(attr_pos, 2, GL_FLOAT, GL_FALSE, 0, 0); | |||||
| glBindBuffer(GL_ARRAY_BUFFER, data->buflist[1]); | |||||
| glBufferData(GL_ARRAY_BUFFER, 24 * sizeof(GLfloat), cols, GL_STATIC_DRAW); | |||||
| glVertexAttribPointer(attr_col, 4, GL_FLOAT, GL_FALSE, 0, 0); | |||||
| glDrawArrays(GL_TRIANGLES, 0, 6); | |||||
| glDisableVertexAttribArray(attr_pos); | |||||
| glDisableVertexAttribArray(attr_col); | |||||
| #elif defined HAVE_GL_1X || defined HAVE_GLES_1X | |||||
| glMatrixMode(GL_PROJECTION); | |||||
| glPushMatrix(); | |||||
| glLoadIdentity(); | |||||
| glMatrixMode(GL_MODELVIEW); | |||||
| glPushMatrix(); | |||||
| glLoadIdentity(); | |||||
| glDisableClientState(GL_NORMAL_ARRAY); | |||||
| glDisableClientState(GL_TEXTURE_COORD_ARRAY); | |||||
| glDisable(GL_TEXTURE_2D); | |||||
| glEnableClientState(GL_VERTEX_ARRAY); | |||||
| glEnableClientState(GL_COLOR_ARRAY); | |||||
| #if defined HAVE_GL_1X | |||||
| glBindBuffer(GL_ARRAY_BUFFER, data->buflist[0]); | |||||
| glBufferData(GL_ARRAY_BUFFER, 12 * sizeof(GLfloat), verts, GL_STATIC_DRAW); | |||||
| glVertexPointer(2, GL_FLOAT, 0, NULL); | |||||
| glBindBuffer(GL_ARRAY_BUFFER, data->buflist[1]); | |||||
| glBufferData(GL_ARRAY_BUFFER, 24 * sizeof(GLfloat), cols, GL_STATIC_DRAW); | |||||
| glColorPointer(4, GL_FLOAT, 0, NULL); | |||||
| #else | |||||
| glVertexPointer(2, GL_FLOAT, 0, verts); | |||||
| glColorPointer(4, GL_FLOAT, 0, cols); | |||||
| #endif | |||||
| glDrawArrays(GL_TRIANGLES, 0, 6); | |||||
| glDisableClientState(GL_VERTEX_ARRAY); | |||||
| glDisableClientState(GL_COLOR_ARRAY); | |||||
| glMatrixMode(GL_PROJECTION); | |||||
| glPopMatrix(); | |||||
| glMatrixMode(GL_MODELVIEW); | |||||
| glPopMatrix(); | |||||
| #endif | |||||
| } | |||||
| DebugTri::~DebugTri() | |||||
| { | |||||
| delete data; | |||||
| } | |||||
| } /* namespace lol */ | |||||
| @@ -0,0 +1,43 @@ | |||||
| // | |||||
| // Lol Engine | |||||
| // | |||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||||
| // | |||||
| // | |||||
| // The DebugTri class | |||||
| // ------------------ | |||||
| // | |||||
| #if !defined __DH_DEBUGTRI_H__ | |||||
| #define __DH_DEBUGTRI_H__ | |||||
| #include "entity.h" | |||||
| namespace lol | |||||
| { | |||||
| class DebugTriData; | |||||
| class DebugTri : public Entity | |||||
| { | |||||
| public: | |||||
| DebugTri(); | |||||
| virtual ~DebugTri(); | |||||
| protected: | |||||
| virtual void TickGame(float deltams); | |||||
| virtual void TickDraw(float deltams); | |||||
| private: | |||||
| DebugTriData *data; | |||||
| }; | |||||
| } /* namespace lol */ | |||||
| #endif // __DH_DEBUGTRI_H__ | |||||
| @@ -17,6 +17,7 @@ | |||||
| #define __DH_LOLDEBUG_H__ | #define __DH_LOLDEBUG_H__ | ||||
| #include "debugfps.h" | #include "debugfps.h" | ||||
| #include "debugquad.h" | |||||
| #include "debugrecord.h" | #include "debugrecord.h" | ||||
| #include "debugsphere.h" | #include "debugsphere.h" | ||||
| #include "debugstats.h" | #include "debugstats.h" | ||||
| @@ -17,6 +17,7 @@ | |||||
| <ClInclude Include="..\src\bitfield.h" /> | <ClInclude Include="..\src\bitfield.h" /> | ||||
| <ClInclude Include="..\src\core.h" /> | <ClInclude Include="..\src\core.h" /> | ||||
| <ClInclude Include="..\src\debugfps.h" /> | <ClInclude Include="..\src\debugfps.h" /> | ||||
| <ClInclude Include="..\src\debugquad.h" /> | |||||
| <ClInclude Include="..\src\debugrecord.h" /> | <ClInclude Include="..\src\debugrecord.h" /> | ||||
| <ClInclude Include="..\src\debugsphere.h" /> | <ClInclude Include="..\src\debugsphere.h" /> | ||||
| <ClInclude Include="..\src\debugstats.h" /> | <ClInclude Include="..\src\debugstats.h" /> | ||||
| @@ -56,6 +57,7 @@ | |||||
| <ClCompile Include="..\deushax\game.cpp" /> | <ClCompile Include="..\deushax\game.cpp" /> | ||||
| <ClCompile Include="..\src\audio.cpp" /> | <ClCompile Include="..\src\audio.cpp" /> | ||||
| <ClCompile Include="..\src\debugfps.cpp" /> | <ClCompile Include="..\src\debugfps.cpp" /> | ||||
| <ClCompile Include="..\src\debugquad.cpp" /> | |||||
| <ClCompile Include="..\src\debugrecord.cpp" /> | <ClCompile Include="..\src\debugrecord.cpp" /> | ||||
| <ClCompile Include="..\src\debugsphere.cpp" /> | <ClCompile Include="..\src\debugsphere.cpp" /> | ||||
| <ClCompile Include="..\src\debugstats.cpp" /> | <ClCompile Include="..\src\debugstats.cpp" /> | ||||
| @@ -15,6 +15,9 @@ | |||||
| <ClInclude Include="..\src\debugfps.h"> | <ClInclude Include="..\src\debugfps.h"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="..\src\debugquad.h"> | |||||
| <Filter>lolengine</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="..\src\debugrecord.h"> | <ClInclude Include="..\src\debugrecord.h"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -121,6 +124,9 @@ | |||||
| <ClCompile Include="..\src\debugfps.cpp"> | <ClCompile Include="..\src\debugfps.cpp"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| <ClCompile Include="..\src\debugquad.cpp"> | |||||
| <Filter>lolengine</Filter> | |||||
| </ClCompile> | |||||
| <ClCompile Include="..\src\debugrecord.cpp"> | <ClCompile Include="..\src\debugrecord.cpp"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| @@ -17,6 +17,7 @@ | |||||
| <ClInclude Include="..\src\bitfield.h" /> | <ClInclude Include="..\src\bitfield.h" /> | ||||
| <ClInclude Include="..\src\core.h" /> | <ClInclude Include="..\src\core.h" /> | ||||
| <ClInclude Include="..\src\debugfps.h" /> | <ClInclude Include="..\src\debugfps.h" /> | ||||
| <ClInclude Include="..\src\debugquad.h" /> | |||||
| <ClInclude Include="..\src\debugrecord.h" /> | <ClInclude Include="..\src\debugrecord.h" /> | ||||
| <ClInclude Include="..\src\debugsphere.h" /> | <ClInclude Include="..\src\debugsphere.h" /> | ||||
| <ClInclude Include="..\src\debugstats.h" /> | <ClInclude Include="..\src\debugstats.h" /> | ||||
| @@ -56,6 +57,7 @@ | |||||
| <ClCompile Include="..\deushax\mapviewer.cpp" /> | <ClCompile Include="..\deushax\mapviewer.cpp" /> | ||||
| <ClCompile Include="..\src\audio.cpp" /> | <ClCompile Include="..\src\audio.cpp" /> | ||||
| <ClCompile Include="..\src\debugfps.cpp" /> | <ClCompile Include="..\src\debugfps.cpp" /> | ||||
| <ClCompile Include="..\src\debugquad.cpp" /> | |||||
| <ClCompile Include="..\src\debugrecord.cpp" /> | <ClCompile Include="..\src\debugrecord.cpp" /> | ||||
| <ClCompile Include="..\src\debugsphere.cpp" /> | <ClCompile Include="..\src\debugsphere.cpp" /> | ||||
| <ClCompile Include="..\src\debugstats.cpp" /> | <ClCompile Include="..\src\debugstats.cpp" /> | ||||
| @@ -15,6 +15,9 @@ | |||||
| <ClInclude Include="..\src\debugfps.h"> | <ClInclude Include="..\src\debugfps.h"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="..\src\debugquad.h"> | |||||
| <Filter>lolengine</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="..\src\debugrecord.h"> | <ClInclude Include="..\src\debugrecord.h"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -121,6 +124,9 @@ | |||||
| <ClCompile Include="..\src\debugfps.cpp"> | <ClCompile Include="..\src\debugfps.cpp"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| <ClCompile Include="..\src\debugquad.cpp"> | |||||
| <Filter>lolengine</Filter> | |||||
| </ClCompile> | |||||
| <ClCompile Include="..\src\debugrecord.cpp"> | <ClCompile Include="..\src\debugrecord.cpp"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| @@ -22,6 +22,7 @@ | |||||
| <ClInclude Include="..\src\bitfield.h" /> | <ClInclude Include="..\src\bitfield.h" /> | ||||
| <ClInclude Include="..\src\core.h" /> | <ClInclude Include="..\src\core.h" /> | ||||
| <ClInclude Include="..\src\debugfps.h" /> | <ClInclude Include="..\src\debugfps.h" /> | ||||
| <ClInclude Include="..\src\debugquad.h" /> | |||||
| <ClInclude Include="..\src\debugrecord.h" /> | <ClInclude Include="..\src\debugrecord.h" /> | ||||
| <ClInclude Include="..\src\debugsphere.h" /> | <ClInclude Include="..\src\debugsphere.h" /> | ||||
| <ClInclude Include="..\src\debugstats.h" /> | <ClInclude Include="..\src\debugstats.h" /> | ||||
| @@ -65,6 +66,7 @@ | |||||
| <ClCompile Include="..\monsterz\title.cpp" /> | <ClCompile Include="..\monsterz\title.cpp" /> | ||||
| <ClCompile Include="..\src\audio.cpp" /> | <ClCompile Include="..\src\audio.cpp" /> | ||||
| <ClCompile Include="..\src\debugfps.cpp" /> | <ClCompile Include="..\src\debugfps.cpp" /> | ||||
| <ClCompile Include="..\src\debugquad.cpp" /> | |||||
| <ClCompile Include="..\src\debugrecord.cpp" /> | <ClCompile Include="..\src\debugrecord.cpp" /> | ||||
| <ClCompile Include="..\src\debugsphere.cpp" /> | <ClCompile Include="..\src\debugsphere.cpp" /> | ||||
| <ClCompile Include="..\src\debugstats.cpp" /> | <ClCompile Include="..\src\debugstats.cpp" /> | ||||
| @@ -15,6 +15,9 @@ | |||||
| <ClInclude Include="..\src\debugfps.h"> | <ClInclude Include="..\src\debugfps.h"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="..\src\debugquad.h"> | |||||
| <Filter>lolengine</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="..\src\debugrecord.h"> | <ClInclude Include="..\src\debugrecord.h"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -126,6 +129,9 @@ | |||||
| <ClCompile Include="..\src\debugfps.cpp"> | <ClCompile Include="..\src\debugfps.cpp"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| <ClCompile Include="..\src\debugquad.cpp"> | |||||
| <Filter>lolengine</Filter> | |||||
| </ClCompile> | |||||
| <ClCompile Include="..\src\debugrecord.cpp"> | <ClCompile Include="..\src\debugrecord.cpp"> | ||||
| <Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||