fix(wayland): upgrade smithay version

This commit is contained in:
Nova
2022-11-06 16:49:30 -05:00
parent fd0940bfe9
commit da7e2c5e6e
2 changed files with 18 additions and 8 deletions

View File

@@ -19,12 +19,12 @@ use smithay::{
backend::{egl::EGLContext, renderer::gles2::Gles2Renderer}, backend::{egl::EGLContext, renderer::gles2::Gles2Renderer},
reexports::wayland_server::{backend::GlobalId, Display, ListeningSocket, Resource}, reexports::wayland_server::{backend::GlobalId, Display, ListeningSocket, Resource},
}; };
use std::os::unix::prelude::AsRawFd;
use std::{ use std::{
ffi::c_void, ffi::c_void,
os::unix::{net::UnixListener, prelude::FromRawFd}, os::unix::{net::UnixListener, prelude::FromRawFd},
sync::Arc, sync::Arc,
}; };
use std::{os::unix::prelude::AsRawFd, time::Duration};
use stereokit as sk; use stereokit as sk;
use stereokit::StereoKit; use stereokit::StereoKit;
use tokio::{ use tokio::{
@@ -143,15 +143,18 @@ impl Wayland {
} }
pub fn frame(&mut self, sk: &StereoKit) { pub fn frame(&mut self, sk: &StereoKit) {
let time_ms = (sk.time_getf() * 1000.) as u32; let time_ms = (sk.time_getf() * 1000.) as u64;
for core_surface in CORE_SURFACES.get_valid_contents() { for core_surface in CORE_SURFACES.get_valid_contents() {
let client_id = core_surface.wl_surface().client_id().unwrap(); let client_id = core_surface.wl_surface().client().unwrap().id();
let seat_data = self.state.lock().seats.get(&client_id).unwrap().clone(); let state = self.state.lock();
let seat_data = state.seats.get(&client_id).unwrap().clone();
let output = state.output.clone();
core_surface.process( core_surface.process(
sk, sk,
&mut self.renderer, &mut self.renderer,
time_ms, output,
Duration::from_millis(time_ms),
&self.log, &self.log,
|data| { |data| {
PanelItem::on_mapped(&core_surface, data, seat_data); PanelItem::on_mapped(&core_surface, data, seat_data);

View File

@@ -14,12 +14,16 @@ use smithay::{
Texture, Texture,
}, },
desktop::utils::send_frames_surface_tree, desktop::utils::send_frames_surface_tree,
output::Output,
reexports::wayland_server::{ reexports::wayland_server::{
backend::ObjectId, protocol::wl_surface::WlSurface, Display, DisplayHandle, Resource, backend::ObjectId, protocol::wl_surface::WlSurface, Display, DisplayHandle, Resource,
}, },
wayland::compositor::{self, SurfaceData}, wayland::compositor::{self, SurfaceData},
}; };
use std::sync::{Arc, Weak}; use std::{
sync::{Arc, Weak},
time::Duration,
};
use stereokit::{ use stereokit::{
material::{Material, Transparency}, material::{Material, Transparency},
shader::Shader, shader::Shader,
@@ -118,7 +122,8 @@ impl CoreSurface {
&self, &self,
sk: &StereoKit, sk: &StereoKit,
renderer: &mut Gles2Renderer, renderer: &mut Gles2Renderer,
time_ms: u32, output: Output,
time: Duration,
log: &Logger, log: &Logger,
on_mapped: F, on_mapped: F,
if_mapped: M, if_mapped: M,
@@ -160,7 +165,9 @@ impl CoreSurface {
if_mapped(data); if_mapped(data);
}); });
send_frames_surface_tree(&self.wl_surface(), time_ms); send_frames_surface_tree(&self.wl_surface(), &output, time, None, |_, _| {
Some(output.clone())
});
} }
pub fn apply_material(&self, model: Arc<Model>, material_idx: u32) { pub fn apply_material(&self, model: Arc<Model>, material_idx: u32) {