feat, multi_flutter_ui_sessions

Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
dignow
2023-10-08 21:44:54 +08:00
parent 5e616dd502
commit 013d307bcd
83 changed files with 2954 additions and 1319 deletions

View File

@@ -301,7 +301,7 @@ class Header: Reactor.Component {
if (recording)
handler.refresh_video();
else
handler.record_screen(false, display_width, display_height);
handler.record_screen(false, 0, display_width, display_height);
}
event click $(#screen) (_, me) {

View File

@@ -122,7 +122,11 @@ impl InvokeUiSession for SciterHandler {
"updateQualityStatus",
&make_args!(
status.speed.map_or(Value::null(), |it| it.into()),
status.fps.map_or(Value::null(), |it| it.into()),
status
.fps
.iter()
.next()
.map_or(Value::null(), |(_, v)| (*v).into()),
status.delay.map_or(Value::null(), |it| it.into()),
status.target_bitrate.map_or(Value::null(), |it| it.into()),
status
@@ -223,7 +227,7 @@ impl InvokeUiSession for SciterHandler {
self.call("adaptSize", &make_args!());
}
fn on_rgba(&self, rgba: &mut scrap::ImageRgb) {
fn on_rgba(&self, _display: usize, rgba: &mut scrap::ImageRgb) {
VIDEO
.lock()
.unwrap()
@@ -304,11 +308,11 @@ impl InvokeUiSession for SciterHandler {
}
/// RGBA is directly rendered by [on_rgba]. No need to store the rgba for the sciter ui.
fn get_rgba(&self) -> *const u8 {
fn get_rgba(&self, _display: usize) -> *const u8 {
std::ptr::null()
}
fn next_rgba(&self) {}
fn next_rgba(&self, _display: usize) {}
}
pub struct SciterSession(Session<SciterHandler>);
@@ -450,7 +454,7 @@ impl sciter::EventHandler for SciterSession {
fn save_image_quality(String);
fn save_custom_image_quality(i32);
fn refresh_video();
fn record_screen(bool, i32, i32);
fn record_screen(bool, i32, i32, i32);
fn record_status(bool);
fn get_toggle_option(String);
fn is_privacy_mode_supported();

View File

@@ -23,7 +23,7 @@ handler.setDisplay = function(x, y, w, h, cursor_embedded) {
display_origin_y = y;
display_cursor_embedded = cursor_embedded;
adaptDisplay();
if (recording) handler.record_screen(true, w, h);
if (recording) handler.record_screen(true, 0, w, h);
}
// in case toolbar not shown correctly
@@ -478,7 +478,7 @@ function self.closing() {
var (x, y, w, h) = view.box(#rectw, #border, #screen);
if (is_file_transfer) save_file_transfer_close_state();
if (is_file_transfer || is_port_forward || size_adapted) handler.save_size(x, y, w, h);
if (recording) handler.record_screen(false, display_width, display_height);
if (recording) handler.record_screen(false, 0, display_width, display_height);
}
var qualityMonitor;