本文整理汇总了C++中SpaceSW::call_queries方法的典型用法代码示例。如果您正苦于以下问题:C++ SpaceSW::call_queries方法的具体用法?C++ SpaceSW::call_queries怎么用?C++ SpaceSW::call_queries使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SpaceSW
的用法示例。
在下文中一共展示了SpaceSW::call_queries方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: flush_queries
void PhysicsServerSW::flush_queries() {
#ifndef _3D_DISABLED
if (!active)
return;
doing_sync = true;
flushing_queries = true;
uint64_t time_beg = OS::get_singleton()->get_ticks_usec();
for (Set<const SpaceSW *>::Element *E = active_spaces.front(); E; E = E->next()) {
SpaceSW *space = (SpaceSW *)E->get();
space->call_queries();
}
flushing_queries = false;
if (ScriptDebugger::get_singleton() && ScriptDebugger::get_singleton()->is_profiling()) {
uint64_t total_time[SpaceSW::ELAPSED_TIME_MAX];
static const char *time_name[SpaceSW::ELAPSED_TIME_MAX] = {
"integrate_forces",
"generate_islands",
"setup_constraints",
"solve_constraints",
"integrate_velocities"
};
for (int i = 0; i < SpaceSW::ELAPSED_TIME_MAX; i++) {
total_time[i] = 0;
}
for (Set<const SpaceSW *>::Element *E = active_spaces.front(); E; E = E->next()) {
for (int i = 0; i < SpaceSW::ELAPSED_TIME_MAX; i++) {
total_time[i] += E->get()->get_elapsed_time(SpaceSW::ElapsedTime(i));
}
}
Array values;
values.resize(SpaceSW::ELAPSED_TIME_MAX * 2);
for (int i = 0; i < SpaceSW::ELAPSED_TIME_MAX; i++) {
values[i * 2 + 0] = time_name[i];
values[i * 2 + 1] = USEC_TO_SEC(total_time[i]);
}
values.push_back("flush_queries");
values.push_back(USEC_TO_SEC(OS::get_singleton()->get_ticks_usec() - time_beg));
ScriptDebugger::get_singleton()->add_profiling_frame_data("physics", values);
}
#endif
};