/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #ifndef __NSCENEPROFILER__ #define __NSCENEPROFILER__ #include "timing/profiler.h" namespace GS { namespace S3D { class Scene; } /*! @short Scene profiler. @author Emmanuel Julien (ejulien@owloh.com) */ struct SceneProfiler : public Profiler { S3D::Scene &scene; public: System *update, *process_queues, *update_triggers, *update_item_transformation, *update_skin, *scene_on_update, *items_on_update, *physic_step, *synchronize_physics, *ui_update; System *push_to_render, *push_active_list, *push_simple_culling, *push_octree_culling; virtual void ResetProfiles(); SceneProfiler(S3D::Scene &s) : scene(s) { // Update update = DeclareSystem("Update"); process_queues = DeclareSystem("Process queues", update); update_triggers = DeclareSystem("Update triggers", update); update_item_transformation = DeclareSystem("Update item transformation", update); update_skin = DeclareSystem("Update item skin", update); scene_on_update = DeclareSystem("Script scene OnUpdate()", update); items_on_update = DeclareSystem("Script items OnUpdate()", update); physic_step = DeclareSystem("Physic step", update); synchronize_physics = DeclareSystem("Physics synchronization", update); ui_update = DeclareSystem("Update UI", update); // Push to render push_to_render = DeclareSystem("Push to render"); push_active_list = DeclareSystem("Push active list", push_to_render); push_simple_culling = DeclareSystem("Push simple renderable", push_to_render); push_octree_culling = DeclareSystem("Push octree renderable", push_to_render); } }; } // GS #endif // __NSCENEPROFILER__