]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
Event (FKey) Messages,
authorPeter Schaefer <schaeferpm@gmail.com>
Tue, 7 Jun 2016 06:26:30 +0000 (08:26 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Tue, 7 Jun 2016 06:26:30 +0000 (08:26 +0200)
FPS&ObjectCount im WindowTitle (Frustum sieht man jetzt)

Weave/Events.cpp
Weave/Game.cpp
Weave/Graphix/Graphix.cpp
Weave/Graphix/Graphix.h
Weave/Scene/Scene.cpp

index 4851b6ac93a4656651a80eda41c588453b26bad9..7c9eee36d708d17c99edb951eb3b58f8ef3fe617 100644 (file)
@@ -5,13 +5,14 @@
 #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()
 {
@@ -112,9 +113,11 @@ void Events::KeyDown(int _key)
                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
@@ -124,6 +127,7 @@ void Events::KeyDown(int _key)
                break;
        case SDLK_F6:
                //??? BoundingBox
+               message("BoundingMeshes", !key_toggle[SDLK_F6]);
                break;
        case SDLK_F7:
                //???
@@ -134,6 +138,7 @@ void Events::KeyDown(int _key)
                        Graphix::disableEffects(EF_FRUSTUM_CULLING);
                else
                        Graphix::enableEffects(EF_FRUSTUM_CULLING);
+               message("FrustumCulling", !key_toggle[SDLK_F9]);
                break;
        case SDLK_F9:
                //TRANSPARENCY
@@ -141,6 +146,7 @@ void Events::KeyDown(int _key)
                        Graphix::disableEffects(EF_TRANSPARENCY);
                else
                        Graphix::enableEffects(EF_TRANSPARENCY);
+               message("Transparency", key_toggle[SDLK_F9]);
                break;
        case SDLK_F10:
                //??? FullScreen
@@ -148,6 +154,7 @@ void Events::KeyDown(int _key)
                        Graphix::FullScreen(true,true);
                else
                        Graphix::FullScreen(false,true);
+               message("FullScreen", !key_toggle[SDLK_F10]);
                break;
        case SDLK_SPACE:
                jump++;
@@ -291,6 +298,11 @@ int Events::returnSet(int& value, int action2)
        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;
index b167f422c900c94fee3f9c3c9844512d53ba3054..5b60c1472baac0ee47e53effe91a699031c15b13 100644 (file)
@@ -112,14 +112,17 @@ void Game::play()
                {\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
index ed3d421d314896b602def6bb1d488897d9e28bd2..4595275aeff998b82355867de9ae24f7ae294190 100644 (file)
@@ -218,7 +218,13 @@ void Graphix::clear()
                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
@@ -270,6 +276,16 @@ unsigned int Graphix::getGlError()
        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
@@ -289,3 +305,6 @@ SDL_Window* Graphix::sdl_window;
 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
index ea7a0eacd3fcef29931ea17c23764a796ac7b534..a004d980dc748dcc3b30b0cda671a6e23b5c9348 100644 (file)
@@ -23,6 +23,9 @@ public:
        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();
@@ -59,5 +62,8 @@ private:
 
        static short effects;
 
+       static int obj;
+       static float fps;
+
 };
 
index a168b5cb2820583e4b5be21cf1b343707a73f7a7..8c709f61e7d49a4dc5b4564d6fdf9ed2ebb045ca 100644 (file)
@@ -343,7 +343,7 @@ void Scene::draw() const
 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)
@@ -353,7 +353,13 @@ void Scene::drawSceneObjects(drawTarget _target, bool _culling) const
                                continue;
                }
                (*i)->draw(_target);
+               count++;
        }
+
+       if (Events::isKToggleActive(SDLK_F2))
+               Graphix::updateNumObjects(count);
+       else
+               Graphix::updateNumObjects(-1);
 }
 
 void Scene::addObject(SceneObject* _add)