#include "Game.h"
#include "GLM.h"
+#include "Message.h"
#include <iostream>
using std::cout;
using std::endl;
-
+void message(std::string title, bool onoff);
void Events::processEvents()
{
break;
case SDLK_F2:
//FPS
+ message("FPS", !key_toggle[SDLK_F2]);
break;
case SDLK_F3:
//WIREFRAME
+ message("WireFrame", !key_toggle[SDLK_F3]);
break;
case SDLK_F4:
//TEXTURE SAMPLING QUALITY
break;
case SDLK_F6:
//??? BoundingBox
+ message("BoundingMeshes", !key_toggle[SDLK_F6]);
break;
case SDLK_F7:
//???
Graphix::disableEffects(EF_FRUSTUM_CULLING);
else
Graphix::enableEffects(EF_FRUSTUM_CULLING);
+ message("FrustumCulling", !key_toggle[SDLK_F9]);
break;
case SDLK_F9:
//TRANSPARENCY
Graphix::disableEffects(EF_TRANSPARENCY);
else
Graphix::enableEffects(EF_TRANSPARENCY);
+ message("Transparency", key_toggle[SDLK_F9]);
break;
case SDLK_F10:
//??? FullScreen
Graphix::FullScreen(true,true);
else
Graphix::FullScreen(false,true);
+ message("FullScreen", !key_toggle[SDLK_F10]);
break;
case SDLK_SPACE:
jump++;
return tmp;
}
+void message(std::string title, bool onoff)
+{
+ Message::info(title + ": " + ((onoff)? "on" : "off"));
+}
+
map<int, bool> Events::key_held;
map<int, bool> Events::mouse_held;
map<int, bool> Events::pad_held;
{\r
++framecount;\r
message_time += fps.getDelta();\r
- if (message_time >= 1.5)\r
+ if (message_time >= 0.5)\r
{\r
- Message::info((string)"Fps: " + std::to_string((float)framecount/message_time));\r
+ Graphix::updateFPS((float)framecount / message_time);\r
+ //Message::info((string)"Fps: " + std::to_string((float)framecount/message_time));\r
message_time = 0;\r
framecount = 0;\r
}\r
\r
}\r
+ else\r
+ Graphix::updateFPS(-1);\r
\r
\r
\r
glClear(GL_ACCUM_BUFFER_BIT);\r
}\r
\r
+ string out = windowTitle;\r
\r
+ if (fps > 0)\r
+ out += "(FPS:" + std::to_string(fps) + ")";\r
+ if (obj >= 0)\r
+ out += "(NumObj:" + std::to_string(obj) + ")";\r
+ SDL_SetWindowTitle(sdl_window, out.c_str());\r
}\r
\r
\r
return error;\r
}\r
\r
+void Graphix::updateFPS(float _fps)\r
+{\r
+ fps = _fps;\r
+}\r
+\r
+void Graphix::updateNumObjects(int _obj)\r
+{\r
+ obj = _obj;\r
+}\r
+\r
unsigned int Graphix::width = 1024;\r
unsigned int Graphix::height = 768;\r
\r
SDL_GLContext Graphix::sdl_glcontext;\r
\r
short Graphix::effects = EF_TRANSPARENCY | EF_BLOOM | EF_FRUSTUM_CULLING;\r
+\r
+int Graphix::obj = -1;\r
+float Graphix::fps = -1;\r
static unsigned int getWindowHeight();
static unsigned int getWindowWidth();
+ static void updateFPS(float fps);
+ static void updateNumObjects(int obj);
+
static void FullScreen(bool enable, bool keepDesktopResolution = true);
static void catchMouse();
static short effects;
+ static int obj;
+ static float fps;
+
};
void Scene::drawSceneObjects(drawTarget _target, bool _culling) const
{
/*TODO: Z-Order (Back2Front)*/
-
+ int count = 0;
for (auto i = SceneObjects.cbegin(); i != SceneObjects.cend(); ++i)
{
if (Graphix::testEffect(EF_FRUSTUM_CULLING)&&_culling)
continue;
}
(*i)->draw(_target);
+ count++;
}
+
+ if (Events::isKToggleActive(SDLK_F2))
+ Graphix::updateNumObjects(count);
+ else
+ Graphix::updateNumObjects(-1);
}
void Scene::addObject(SceneObject* _add)