/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */ #ifndef __ENGINE_BASE_PROFILING_H__ #include #endif class CRenderProfile : public CProfileForm { public: // indices for profiling counters and timers enum ProfileTimerIndex { PTI_RENDERING, // overall rendering time for CRenderer PTI_INITIALIZATION, // time spent in initialization PTI_ADDINITIAL, // time spent adding initial sectors PTI_CLEANUP, // time spent in destructor PTI_RENDERSCENE, // time spent in RenderScene() PTI_RENDERMODELS, // time spent in RenderModels() PTI_RENDERONEMODEL, // time spent in RenderOneModel() PTI_FINDSHADINGINFO, // time spent in FindShadingInfo() during RenderOneModel() PTI_FINDLIGHTS, // time spent in searching for lights in RenderOneModel() PTI_RENDERPARTICLES, // time spent in RenderParticles() PTI_SCANEDGES, // time spent in ScanEdges() PTI_INITSCANEDGES, // time spent in InitScanEdges() PTI_ENDSCANEDGES, // time spent in EndScanEdges() PTI_SCANONELINE, // time spent in ScanOneLine() PTI_PASSPORTAL, // time spent in PassPortal() PTI_ADDSPANSTOSCENE, // time spent in AddSpansToScene() PTI_PROCESSTRANSPORTAL, // time spent processing translucent portals PTI_ADDTRANSSPANSTOSCENE,// time spent in AddTranslucentSpansToScene() PTI_STEPANDRESORT, // time spent in StepAndResortActiveList() PTI_REMREMLIST, // time spent in RemRemoveListFromActiveList() PTI_ADDADDLIST, // time spent in AddAddListToActiveList() PTI_ADDNONZONINGBRUSH, // time spent in AddNonZoningBrush() PTI_ADDMODELENTITY, // time spent in AddModelEntity() PTI_ADDZONINGSECTORS, // time spent in AddZoningSectors() PTI_ADDENTITIESINSECTOR, // time spent in AddEntitiesInSector() PTI_ADDENTITIESINBOX, // time spent in AddEntitiesInBox() PTI_PREPAREBRUSH, // time spent in PrepareBrush() PTI_ADDSECTOR, // time spent in AddSector() PTI_TRANSFORMVERTICES, // time spent transforming sector vertices PTI_TRANSFORMPLANES, // time spent transforming sector planes PTI_MAKENONDETAILSCREENPOLYGONS, PTI_CLIPTOALLPLANES, PTI_PROJECTVERTICES, PTI_MAKEFINALPOLYGONEDGES, PTI_ADDSCREENEDGES, PTI_MAKEDETAILSCREENPOLYGONS, PTI_MAKESCREENEDGE, // time spent in MakeScreenEdge() PTI_ADDEDGETOADDLIST, // time spent in AddEdgeToAddList() PTI_MAKESCREENPOLYGON, // time spent in MakeScreenPolygon() PTI_REDRAWVIEW, // time spent in CSCapeLibrary::RedrawView() PTI_RENDERINTERFACE, // time spent in CPlayerEntity::RenderInterface() PTI_COUNT }; enum ProfileCounterIndex { PCI_POLYGONSRENDERED, // total number of polygons rendered PCI_TRANSFORMEDSECTORS, // total number of transformed sectors PCI_TRANSFORMEDVERTICES, // total number of transformed vertices PCI_TRANSFORMEDPLANES, // total number of transformed planes PCI_TRANSFORMEDEDGES, // total number of transformed edges PCI_NONDETAILPOLYGONS, PCI_DETAILPOLYGONS, PCI_EDGETRANSITIONS, // total number of edge transitions during scanning PCI_SWAPEDGETRANSITIONS, // number of edge transitions with swap polygons PCI_OVERALLSCANLINES, // total number of scan lines processed PCI_SCANLINEPORTALRETRIES, // scan line retries due to portal encounters PCI_COHERENTSCANLINES, // scan lines that were coherent with previous one PCI_SPANS, // total generated spans PCI_TRAPEZOIDS, // total generated trapezoids PCI_COUNT }; CRenderProfile(void); };