![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #pragma once 00007 00008 #include "vlutil/vlShmPool.h" 00009 #include "simTerrainDrawer/simTerrainDrawerDefines.h" 00010 #include "simTerrainDrawer/debugDrawerGeometryMemory.h" 00011 #include "simTerrainDrawer/debugDrawerSphereMemory.h" 00012 #include "simTerrainDrawer/debugDrawerLineMemory.h" 00013 #include "simTerrainDrawer/debugDrawerTriangleMemory.h" 00014 #include "simTerrainDrawer/debugDrawerNameManager.h" 00015 #include "vlutil/vlString.h" 00016 #include <vector> 00017 00020 00021 00022 struct DT_DLL_simTerrainDrawer DtDebugMemoryBlockHeader 00023 { 00024 int myMemoryType; 00025 long myCurrentPtrOffset; 00026 long myLastDataPtrOffset; 00027 long myMaxSize; 00028 unsigned long myFrameNumber; 00029 unsigned long myNumberOfEntries; 00030 }; 00031 00032 class DT_DLL_simTerrainDrawer DtDebugDrawerSharedMemoryManager 00033 { 00034 public: 00035 static const int DtDebugDrawerSharedMemoryNoType = 0; 00036 static const int DtDebugDrawerSharedMemoryAllType = 1; 00037 static const int DtDebugDrawerSharedMemoryVRFType = 2; 00038 static const int DtDebugDrawerSharedMemoryBHaveType = 3; 00039 00040 typedef DtDebugMemoryBlockHeader DtMemoryHeader; 00041 00043 DtDebugDrawerSharedMemoryManager(); 00044 00047 virtual ~DtDebugDrawerSharedMemoryManager(); 00048 00058 virtual void init(int memoryType, bool clearMemory=false, unsigned long memorySize=10485670); 00059 00072 virtual void push(DtDebugDrawerGeometryMemory* shape); 00073 00078 00079 virtual void advanceFrameCount(); 00080 virtual unsigned long frameCount() const; 00082 00086 virtual unsigned int numEmtries(); 00087 00107 virtual const char* getNext(const char* previousPtr, DtDebugDrawerGeometryMemory** shape); 00108 00111 virtual const std::vector<int> getMemoryBlockIndexList(); 00112 00115 virtual DtString getMemoryBlockName(int index); 00116 00123 virtual void pointToMemoryBlock(DtString name); 00124 00127 virtual void startNewFrame(); 00128 00129 protected: 00130 00131 00134 unsigned long myMaxSize; 00135 00139 unsigned long myCurrentSize; 00140 00143 char* myCurrentMemPtr; 00144 00146 char* myMemoryPtr; 00147 00149 DtMemoryHeader* myHeader; 00150 00152 DtSharedMemoryPoolManager* myManager; 00153 DtSharedMemoryPoolClient* myClient; 00154 00156 DtDebugDrawerNameManager* myNameManager; 00157 00158 bool myIsReader; 00159 00160 DtString myMemoryName; 00161 00162 int myMemoryType; 00163 }; 00164