added some rendering stats to OctreeRenderer

This commit is contained in:
ZappoMan 2014-10-15 09:22:31 -07:00
parent 64fecba011
commit 770bc919bb
2 changed files with 42 additions and 1 deletions

View file

@ -162,12 +162,23 @@ bool OctreeRenderer::renderOperation(OctreeElement* element, void* extraData) {
} }
void OctreeRenderer::render(RenderMode renderMode) { void OctreeRenderer::render(RenderMode renderMode) {
RenderArgs args = { this, _viewFrustum, getSizeScale(), getBoundaryLevelAdjust(), renderMode, 0, 0, 0 }; RenderArgs args = { this, _viewFrustum, getSizeScale(), getBoundaryLevelAdjust(), renderMode, 0, 0, 0, 0, 0, 0, 0, 0 };
if (_tree) { if (_tree) {
_tree->lockForRead(); _tree->lockForRead();
_tree->recurseTreeWithOperation(renderOperation, &args); _tree->recurseTreeWithOperation(renderOperation, &args);
_tree->unlock(); _tree->unlock();
} }
_meshesConsidered = args._meshesConsidered;
_meshesRendered = args._meshesRendered;
_meshesOutOfView = args._meshesOutOfView;
_elementsTouched = args._elementsTouched;
_itemsRendered = args._itemsRendered;
_itemsOutOfView = args._itemsOutOfView;
_trianglesRendered = args._trianglesRendered;
_quadsRendered = args._quadsRendered;
} }
void OctreeRenderer::clear() { void OctreeRenderer::clear() {

View file

@ -63,10 +63,33 @@ public:
/// clears the tree /// clears the tree
virtual void clear(); virtual void clear();
int getElementsTouched() const { return _elementsTouched; }
int getItemsRendered() const { return _itemsRendered; }
int getItemsOutOfView() const { return _itemsOutOfView; }
int getMeshesConsidered() const { return _meshesConsidered; }
int getMeshesRendered() const { return _meshesRendered; }
int getMeshesOutOfView() const { return _meshesOutOfView; }
int getTrianglesRendered() const { return _trianglesRendered; }
int getQuadsRendered() const { return _quadsRendered; }
protected: protected:
Octree* _tree; Octree* _tree;
bool _managedTree; bool _managedTree;
ViewFrustum* _viewFrustum; ViewFrustum* _viewFrustum;
int _elementsTouched;
int _itemsRendered;
int _itemsOutOfView;
int _meshesConsidered;
int _meshesRendered;
int _meshesOutOfView;
int _trianglesRendered;
int _quadsRendered;
}; };
class RenderArgs { class RenderArgs {
@ -80,6 +103,13 @@ public:
int _elementsTouched; int _elementsTouched;
int _itemsRendered; int _itemsRendered;
int _itemsOutOfView; int _itemsOutOfView;
int _meshesConsidered;
int _meshesRendered;
int _meshesOutOfView;
int _trianglesRendered;
int _quadsRendered;
}; };