All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorsResourceCounts.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #define Eegeo_INTERIOR_RESOURCE_COUNTERS_ACTIVE 0
6 
7 #if Eegeo_INTERIOR_RESOURCE_COUNTERS_ACTIVE == 1
8  #include <string>
9  #include "Types.h"
10  #define Eegeo_INTERIOR_RESOURCE_COUNTER_INCREMENT(x) do { ++(x); } while(0);
11  #define Eegeo_INTERIOR_RESOURCE_COUNTER_DECREMENT(x) do { --(x); Eegeo_ASSERT(x >= 0, "Reference count underflow for " #x " \n"); } while(0);
12  #define Eegeo_INTERIOR_RESOURCE_COUNTERS_REPORT Eegeo::Resources::Interiors::ResourceCounts::GetCounts()
13  #define Eegeo_INTERIOR_RESOURCE_COUNTERS_DUMP_REPORT Eegeo::Resources::Interiors::ResourceCounts::PrintReport();
14 #else
15  #define Eegeo_INTERIOR_RESOURCE_COUNTER_INCREMENT(x) ;
16  #define Eegeo_INTERIOR_RESOURCE_COUNTER_DECREMENT(x) ;
17  #define Eegeo_INTERIOR_RESOURCE_COUNTERS_REPORT ""
18  #define Eegeo_INTERIOR_RESOURCE_COUNTERS_DUMP_REPORT ;
19 #endif
20 
21 namespace Eegeo
22 {
23  namespace Resources
24  {
25  namespace Interiors
26  {
27  namespace ResourceCounts
28  {
29 #if Eegeo_INTERIOR_RESOURCE_COUNTERS_ACTIVE == 1
30  extern int InteriorTextures;
31  extern int MaterialDescriptors;
32 
33  extern int DiffuseUntexturedMaterials;
34  extern int DiffuseTexturedMaterials;
35  extern int SpecularMaterials;
36  extern int CubeMappedMaterials;
37  extern int ChromeMaterials;
38  extern int ReflectionMaterials;
39  extern int StencilMirrorMaterials;
40 
41  extern int InstanceRenderables;
42  extern int HighlightRenderables;
43  extern int FloorRenderables;
44  extern int StencilMirrorClearRenderables;
45 
46  std::string GetCounts();
47  void PrintReport();
48 #endif
49  }
50  }
51 
52  }
53 }