| 451 | } |
| 452 | |
| 453 | class Application |
| 454 | { |
| 455 | public: |
| 456 | Application() |
| 457 | : enableFiltering(true) |
| 458 | , instrumentIndirectRender(false) |
| 459 | , generateGeometry(false) |
| 460 | , geometryChunkSize(65535) |
| 461 | , geometryChunkSizeVariance(16384) |
| 462 | , frustumCoverage(0.9f) |
| 463 | , frontfaceCoverage(0.5f) |
| 464 | , useCameraForBenchmark(false) |
| 465 | , emulateMultiIndirectDraw(false) |
| 466 | , shadowMapResolution(-1) |
| 467 | , pipelineStatsTrianglesIn(0) |
| 468 | , pipelineStatsTrianglesOut(0) |
| 469 | , enabledFilters(0xFFFFFFFF) |
| 470 | , benchmarkMode(false) |
| 471 | , benchmarkFrameCount(32) |
| 472 | , benchmarkActive(false) |
| 473 | , warmupFrames(32) |
| 474 | , fullscreenVs(nullptr) |
| 475 | , fullscreenPs(nullptr) |
| 476 | { |
| 477 | } |
| 478 | |
| 479 | bool enableFiltering; |
| 480 | bool instrumentIndirectRender; |
| 481 | int windowWidth; |
| 482 | int windowHeight; |
| 483 | bool generateGeometry; |
| 484 | int geometryChunkSize; |
| 485 | int geometryChunkSizeVariance; |
| 486 | float frustumCoverage; |
| 487 | float frontfaceCoverage; |
| 488 | bool useCameraForBenchmark; |
| 489 | bool emulateMultiIndirectDraw; |
| 490 | int shadowMapResolution; |
| 491 | |
| 492 | int64_t pipelineStatsTrianglesIn; |
| 493 | int64_t pipelineStatsTrianglesOut; |
| 494 | int64_t pipelineStatsClustersIn; |
| 495 | int64_t pipelineStatsClustersOut; |
| 496 | |
| 497 | uint32_t enabledFilters; |
| 498 | |
| 499 | bool benchmarkMode; |
| 500 | |
| 501 | public: |
| 502 | int GetMeshCount() const |
| 503 | { |
| 504 | return static_cast<int>(meshHandles_.size()); |
| 505 | } |
| 506 | |
| 507 | private: |
| 508 | std::vector<double> frameTimes; |
| 509 | int benchmarkFrameCount; |
| 510 | bool benchmarkActive; |
nothing calls this directly
no outgoing calls
no test coverage detected