错误处理机制纠正
This commit is contained in:
@@ -199,11 +199,9 @@ if (RENDERIVE_BUILD_TESTS)
|
||||
continue()
|
||||
endif ()
|
||||
file(RELATIVE_PATH Renderive_Web_test_name "${Renderive_Web_test_dir}" "${Renderive_Web_test_source}")
|
||||
string(MD5 Renderive_Web_test_hash "${Renderive_Web_test_name}")
|
||||
string(SUBSTRING "${Renderive_Web_test_hash}" 0 8 Renderive_Web_test_hash)
|
||||
get_filename_component(Renderive_Web_test_name "${Renderive_Web_test_source}" NAME_WE)
|
||||
string(REGEX REPLACE "\\.[^.]+$" "" Renderive_Web_test_name "${Renderive_Web_test_name}")
|
||||
string(MAKE_C_IDENTIFIER "${Renderive_Web_test_name}" Renderive_Web_test_name)
|
||||
set(Renderive_Web_test_target "Renderive_Web_${Renderive_Web_test_name}_${Renderive_Web_test_hash}")
|
||||
set(Renderive_Web_test_target "Renderive_Web_${Renderive_Web_test_name}")
|
||||
add_executable("${Renderive_Web_test_target}" "${Renderive_Web_test_source}")
|
||||
target_link_libraries("${Renderive_Web_test_target}" PRIVATE Renderive_Web Adminive::Nlohmann GTest::gtest_main)
|
||||
renderive_stage_render_3D_runtime("${Renderive_Web_test_target}")
|
||||
|
||||
@@ -90,8 +90,9 @@ struct Type_Descriptor<renderive::web::Gallery_Session_Control<Scene_Type>> {
|
||||
[](const T& value) { return value.scene_.max_render_fps() > 0.0; },
|
||||
[dirty](T& value, bool enabled) {
|
||||
if (enabled) {
|
||||
if (value.scene_.max_render_fps() <= 0.0)
|
||||
value.scene_.set_max_render_fps(30.0);
|
||||
if (value.scene_.max_render_fps() <= 0.0 &&
|
||||
value.scene_.set_max_render_fps(30.0) != renderive::Plot_Control_Error::none)
|
||||
return;
|
||||
} else {
|
||||
value.scene_.clear_max_render_fps();
|
||||
}
|
||||
@@ -104,8 +105,9 @@ struct Type_Descriptor<renderive::web::Gallery_Session_Control<Scene_Type>> {
|
||||
return fps > 0.0 ? fps : 30.0;
|
||||
},
|
||||
[dirty](T& value, double fps) {
|
||||
if (value.scene_.max_render_fps() > 0.0)
|
||||
value.scene_.set_max_render_fps(fps);
|
||||
if (value.scene_.max_render_fps() > 0.0 &&
|
||||
value.scene_.set_max_render_fps(fps) != renderive::Plot_Control_Error::none)
|
||||
return;
|
||||
dirty(value);
|
||||
}),
|
||||
callback_property<T, renderive::web::Gallery_Feedback_Policy>(
|
||||
|
||||
@@ -64,7 +64,7 @@ struct Web_Plot_Session::Impl {
|
||||
Impl() {
|
||||
plot.init();
|
||||
plot.set_background_color({3, 7, 18, 255});
|
||||
plot.set_max_render_fps(30.0);
|
||||
static_cast<void>(plot.set_max_render_fps(30.0));
|
||||
plot.set_viewport_size({960, 600});
|
||||
const auto root = plot.root_renderable();
|
||||
constexpr Color axis_color{93, 116, 151, 255};
|
||||
|
||||
@@ -190,7 +190,7 @@ public:
|
||||
register_controls();
|
||||
set_performance_plot_name(plot_, case_id_ + "/" + gallery_enum_id(frame_mode_));
|
||||
if (frame_mode_ == Gallery_Frame_Mode::Low_Latency)
|
||||
plot_.set_max_render_fps(30.0);
|
||||
static_cast<void>(plot_.set_max_render_fps(30.0));
|
||||
plot_.activate_view();
|
||||
update_model();
|
||||
(void)plot_.render_frame(true);
|
||||
@@ -368,8 +368,13 @@ public:
|
||||
const auto state = plot_.render_scene().capture_state();
|
||||
if (state.enabled())
|
||||
return "A performance capture session is already active";
|
||||
const auto session_id = plot_.render_scene().capture_next_frame();
|
||||
last_action_result_ = "capture session=" + std::to_string(session_id);
|
||||
const auto capture = plot_.render_scene().capture_next_frame();
|
||||
if (!capture) {
|
||||
if (capture.error == Capture_Error::session_active)
|
||||
return "A performance capture session is already active";
|
||||
throw std::logic_error("validated capture request rejected");
|
||||
}
|
||||
last_action_result_ = "capture session=" + std::to_string(capture.session_id);
|
||||
return "Capture next render frame requested";
|
||||
}
|
||||
if (request.id == "capture_frames") {
|
||||
@@ -381,8 +386,13 @@ public:
|
||||
const auto state = plot_.render_scene().capture_state();
|
||||
if (state.enabled())
|
||||
return "A performance capture session is already active";
|
||||
const auto session_id = plot_.render_scene().capture_frames(count);
|
||||
last_action_result_ = "capture session=" + std::to_string(session_id) +
|
||||
const auto capture = plot_.render_scene().capture_frames(count);
|
||||
if (!capture) {
|
||||
if (capture.error == Capture_Error::session_active)
|
||||
return "A performance capture session is already active";
|
||||
throw std::logic_error("validated capture request rejected");
|
||||
}
|
||||
last_action_result_ = "capture session=" + std::to_string(capture.session_id) +
|
||||
", frames=" + std::to_string(count);
|
||||
return "Consecutive render frame capture requested";
|
||||
}
|
||||
@@ -914,7 +924,7 @@ private:
|
||||
plot_.clear_consumer_feedback();
|
||||
return;
|
||||
}
|
||||
plot_.set_consumer_feedback({interval_ns});
|
||||
static_cast<void>(plot_.set_consumer_feedback({interval_ns}));
|
||||
}
|
||||
void record_performance(std::chrono::steady_clock::time_point started, bool rendered) {
|
||||
const auto finished = std::chrono::steady_clock::now();
|
||||
|
||||
@@ -340,9 +340,14 @@ public:
|
||||
auto& scene = scene_.render_scene();
|
||||
if (scene.capture_state().enabled())
|
||||
return "A performance capture session is already active";
|
||||
const auto session_id = scene.capture_next_frame();
|
||||
const auto capture = scene.capture_next_frame();
|
||||
if (!capture) {
|
||||
if (capture.error == Capture_Error::session_active)
|
||||
return "A performance capture session is already active";
|
||||
throw std::logic_error("validated capture request rejected");
|
||||
}
|
||||
last_action_result_ =
|
||||
"capture session=" + std::to_string(session_id);
|
||||
"capture session=" + std::to_string(capture.session_id);
|
||||
return "Next 3D frame capture requested";
|
||||
}
|
||||
if (request.id == "capture_frames") {
|
||||
@@ -356,9 +361,14 @@ public:
|
||||
auto& scene = scene_.render_scene();
|
||||
if (scene.capture_state().enabled())
|
||||
return "A performance capture session is already active";
|
||||
const auto session_id = scene.capture_frames(count);
|
||||
const auto capture = scene.capture_frames(count);
|
||||
if (!capture) {
|
||||
if (capture.error == Capture_Error::session_active)
|
||||
return "A performance capture session is already active";
|
||||
throw std::logic_error("validated capture request rejected");
|
||||
}
|
||||
last_action_result_ = "capture session=" +
|
||||
std::to_string(session_id) +
|
||||
std::to_string(capture.session_id) +
|
||||
" frames=" + std::to_string(count);
|
||||
return "Consecutive 3D frame capture requested";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user