static void mainLoop() { addCallbacks(retracer); long long startTime = 0; frameNo = 0; startTime = os::getTime(); if (singleThread) { trace::Call *call; while ((call = parser->parse_call())) { retraceCall(call); delete call; } } else { RelayRace race; race.run(); } finishRendering(); long long endTime = os::getTime(); float timeInterval = (endTime - startTime) * (1.0 / os::timeFrequency); if ((retrace::verbosity >= -1) || (retrace::profiling)) { std::cout << "Rendered " << frameNo << " frames" " in " << timeInterval << " secs," " average of " << (frameNo/timeInterval) << " fps\n"; } if (waitOnFinish) { waitForInput(); } else { return; } }
static void mainLoop() { addCallbacks(retracer); long long startTime = 0; frameNo = 0; startTime = os::getTime(); if (singleThread) { trace::Call *call; while ((call = parser.parse_call())) { retraceCall(call); delete call; }; } else { RelayRace race; race.run(); } finishRendering(); long long endTime = os::getTime(); float timeInterval = (endTime - startTime) * (1.0 / os::timeFrequency); if ((retrace::verbosity >= -1) || (retrace::profiling)) { std::cout << "Rendered " << frameNo << " frames" " in " << timeInterval << " secs," " average of " << (frameNo/timeInterval) << " fps\n"; std::cout << std::endl; std::cout << "Total number of calls: " << nCalls.tot() << std::endl; std::cout << "Average number of calls: " << nCalls.avg() << std::endl; std::cout << "Minimum number of calls: " << nCalls.min() << std::endl; std::cout << "Maximum number of calls: " << nCalls.max() << std::endl; std::cout << std::endl; std::cout << "Total number of render calls: " << nRenderCalls.tot() << std::endl; std::cout << "Average number of render calls: " << nRenderCalls.avg() << std::endl; std::cout << "Minimum number of render calls: " << nRenderCalls.min() << std::endl; std::cout << "Maximum number of render calls: " << nRenderCalls.max() << std::endl; std::cout << std::endl; std::cout << "Total texel uploads: " << texUploads.tot() << std::endl; std::cout << "Average texel uploads: " << texUploads.avg() << std::endl; std::cout << "Minimum texel uploads: " << texUploads.min() << std::endl; std::cout << "Maximum texel uploads: " << texUploads.max() << std::endl; std::cout << std::endl; std::cout << "Total number of triangles: " << nTriangles.tot() << std::endl; std::cout << "Average number of triangles: " << nTriangles.avg() << std::endl; std::cout << "Minimum number of triangles: " << nTriangles.min() << std::endl; std::cout << "Maximum number of triangles: " << nTriangles.max() << std::endl; std::cout << std::endl; std::cout << "Total number of vertices: " << nVertices.tot() << std::endl; std::cout << "Average number of vertices: " << nVertices.avg() << std::endl; std::cout << "Minimum number of vertices: " << nVertices.min() << std::endl; std::cout << "Maximum number of vertices: " << nVertices.max() << std::endl; } if (waitOnFinish) { waitForInput(); } else { return; } }