Serious-Engine/Sources/Engine/Models/ModelProfile.h
2016-03-11 18:20:51 -06:00

119 lines
3.0 KiB
C++

/* Copyright (c) 2002-2012 Croteam Ltd.
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as published by
the Free Software Foundation
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
#ifndef SE_INCL_MODELPROFILE_H
#define SE_INCL_MODELPROFILE_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include <Engine/Base/Profiling.h>
/* Class for holding profiling information for models. */
class CModelProfile : public CProfileForm {
public:
// indices for profiling counters and timers
enum ProfileTimerIndex {
PTI_INITMODELRENDERING,
PTI_INITPROJECTION,
PTI_INITSHADOWPROJECTION,
PTI_INITATTACHMENTS,
PTI_CREATEATTACHMENT,
PTI_RENDERMODEL,
PTI_RENDERSHADOW,
PTI_RENDERSIMPLESHADOW,
PTI_VIEW_PREPAREFORRENDERING,
PTI_VIEW_SETMODELVIEW,
PTI_VIEW_INIT_UNPACK,
PTI_VIEW_INIT_VERTICES,
PTI_VIEW_INIT_FOG_MIP,
PTI_VIEW_INIT_HAZE_MIP,
PTI_VIEW_RENDERMODEL,
PTI_VIEW_INIT_DIFF_SURF,
PTI_VIEW_INIT_BUMP_SURF,
PTI_VIEW_INIT_REFL_MIP ,
PTI_VIEW_INIT_REFL_SURF,
PTI_VIEW_INIT_SPEC_MIP,
PTI_VIEW_INIT_SPEC_SURF,
PTI_VIEW_INIT_FOG_SURF,
PTI_VIEW_INIT_HAZE_SURF,
PTI_VIEW_ATTENUATE_SURF,
PTI_VIEW_RENDER_DIFFUSE,
PTI_VIEW_RENDER_BUMP,
PTI_VIEW_RENDER_REFLECTIONS,
PTI_VIEW_RENDER_SPECULAR,
PTI_VIEW_RENDER_FOG,
PTI_VIEW_RENDER_HAZE,
PTI_VIEW_SETTEXTURE,
PTI_VIEW_LOCKARRAYS,
PTI_VIEW_DRAWELEMENTS,
PTI_VIEW_ONESIDE,
PTI_VIEW_ONESIDE_GLSETUP,
PTI_VIEW_RENDERSHADOW,
PTI_VIEW_SHAD_INIT_MIP,
PTI_VIEW_SHAD_INIT_SURF,
PTI_VIEW_SHAD_GLSETUP,
PTI_VIEW_SHAD_RENDER,
PTI_VIEW_RENDERSIMPLESHADOW,
PTI_VIEW_SIMP_CALC,
PTI_VIEW_SIMP_PREP,
PTI_VIEW_SIMP_COPY,
PTI_VIEW_SIMP_BATCHED,
PTI_VIEW_RENDERPATCHES,
PTI_MASK_INITMODELRENDERING,
PTI_MASK_RENDERMODEL,
PTI_COUNT
};
enum ProfileCounterIndex {
PCI_VERTICES_FIRSTMIP,
PCI_VERTICES_USEDMIP,
PCI_SURFACEVERTICES_FIRSTMIP,
PCI_SURFACEVERTICES_USEDMIP,
PCI_TRIANGLES_FIRSTMIP,
PCI_TRIANGLES_USEDMIP,
PCI_SHADOWVERTICES_FIRSTMIP,
PCI_SHADOWVERTICES_USEDMIP,
PCI_SHADOWSURFACEVERTICES_FIRSTMIP,
PCI_SHADOWSURFACEVERTICES_USEDMIP,
PCI_SHADOWTRIANGLES_FIRSTMIP,
PCI_SHADOWTRIANGLES_USEDMIP,
PCI_VIEW_TRIANGLES,
PCI_MASK_TRIANGLES,
PCI_MASK_POLYGONS,
PCI_COUNT
};
// constructor
CModelProfile(void);
// override to provide external averaging from gfx profile
virtual INDEX GetAveragingCounter(void);
};
#endif /* include-once check. */