This commit is contained in:
galister
2024-08-09 18:59:31 +09:00
parent 0808383e70
commit 57ff3aa1dd
7 changed files with 36 additions and 60 deletions

View File

@@ -1165,7 +1165,6 @@ pub struct WlxPipelineDynamic {}
pub struct WlxPipelineLegacy {
pub render_pass: Arc<RenderPass>,
pub framebuffer: Arc<Framebuffer>,
pub view: Arc<ImageView>,
}
pub struct WlxPipeline<D> {
@@ -1399,7 +1398,6 @@ impl WlxPipeline<WlxPipelineLegacy> {
data: WlxPipelineLegacy {
render_pass,
framebuffer,
view: render_target,
},
})
}

View File

@@ -120,21 +120,24 @@ impl<D, S> Control<D, S> {
self.rect.h,
)?;
let clamped_radius = self.corner_radius.min(self.rect.w / 2.0).min(self.rect.h / 2.0);
let clamped_radius = self
.corner_radius
.min(self.rect.w / 2.0)
.min(self.rect.h / 2.0);
let skew_radius = vec![
clamped_radius / self.rect.w,
clamped_radius / self.rect.h];
let skew_radius = [clamped_radius / self.rect.w, clamped_radius / self.rect.h];
let set0 = canvas
.pipeline_bg_color
.uniform_buffer(0, vec![
let set0 = canvas.pipeline_bg_color.uniform_buffer(
0,
vec![
self.bg_color.x,
self.bg_color.y,
self.bg_color.z,
self.bg_color.w,
skew_radius[0],
skew_radius[1]])?;
skew_radius[1],
],
)?;
canvas.pipeline_bg_color.create_pass(
[canvas.width as _, canvas.height as _],
@@ -163,21 +166,24 @@ impl<D, S> Control<D, S> {
self.rect.h,
)?;
let clamped_radius = self.corner_radius.min(self.rect.w / 2.0).min(self.rect.h / 2.0);
let clamped_radius = self
.corner_radius
.min(self.rect.w / 2.0)
.min(self.rect.h / 2.0);
let skew_radius = vec![
clamped_radius / self.rect.w,
clamped_radius / self.rect.h];
let skew_radius = [clamped_radius / self.rect.w, clamped_radius / self.rect.h];
let set0 = canvas
.pipeline_bg_color
.uniform_buffer(0, vec![
let set0 = canvas.pipeline_bg_color.uniform_buffer(
0,
vec![
color.x,
color.y,
color.z,
color.w,
skew_radius[0],
skew_radius[1]])?;
skew_radius[1],
],
)?;
let pass = canvas.pipeline_bg_color.create_pass(
[canvas.width as _, canvas.height as _],

View File

@@ -533,7 +533,6 @@ pub fn get_key_type(key: VirtualKey) -> KeyType {
}
pub struct XkbKeymap {
pub context: xkb::Context,
pub keymap: xkb::Keymap,
}

View File

@@ -120,7 +120,7 @@ impl Dispatch<WlKeyboard, ()> for WlKeymapHandler {
match maybe_keymap {
Ok(Some(keymap)) => {
state.keymap = Some(XkbKeymap { context, keymap });
state.keymap = Some(XkbKeymap { keymap });
}
Ok(None) => {
log::error!("Could not load keymap: no keymap");

View File

@@ -31,5 +31,5 @@ pub fn get_keymap_x11() -> anyhow::Result<XkbKeymap> {
}
let keymap = keymap_new_from_device(&context, &conn, device_id, xkb::KEYMAP_COMPILE_NO_FLAGS);
Ok(XkbKeymap { context, keymap })
Ok(XkbKeymap { keymap })
}

View File

@@ -26,9 +26,12 @@ use {
crate::config_io,
std::error::Error,
std::{ops::Deref, path::PathBuf},
wlx_capture::pipewire::{pipewire_select_screen, PipewireCapture, PipewireStream},
wlx_capture::pipewire::{pipewire_select_screen, PipewireCapture},
};
#[cfg(all(feature = "x11", feature = "pipewire"))]
use wlx_capture::pipewire::PipewireStream;
#[cfg(feature = "wayland")]
use {
crate::config::AStrMapExt,
@@ -296,7 +299,7 @@ impl ScreenRenderer {
}
#[cfg(feature = "wayland")]
pub fn new_wlr_dmabuf(output: &WlxOutput, config: &GeneralConfig) -> Option<ScreenRenderer> {
pub fn new_wlr_dmabuf(output: &WlxOutput) -> Option<ScreenRenderer> {
let client = WlxClient::new()?;
let capture = WlrDmabufCapture::new(client, output.id);
@@ -310,10 +313,7 @@ impl ScreenRenderer {
}
#[cfg(feature = "wayland")]
pub fn new_wlr_screencopy(
output: &WlxOutput,
config: &GeneralConfig,
) -> Option<ScreenRenderer> {
pub fn new_wlr_screencopy(output: &WlxOutput) -> Option<ScreenRenderer> {
let client = WlxClient::new()?;
let capture = WlrScreencopyCapture::new(client, output.id);
@@ -370,7 +370,7 @@ impl ScreenRenderer {
}
#[cfg(feature = "x11")]
pub fn new_xshm(screen: Arc<XshmScreen>, config: &GeneralConfig) -> ScreenRenderer {
pub fn new_xshm(screen: Arc<XshmScreen>) -> ScreenRenderer {
let capture = XshmCapture::new(screen.clone());
ScreenRenderer {
@@ -602,12 +602,12 @@ pub fn create_screen_renderer_wl(
&& has_wlr_dmabuf
{
log::info!("{}: Using Wlr DMA-Buf", &output.name);
capture = ScreenRenderer::new_wlr_dmabuf(output, &session.config);
capture = ScreenRenderer::new_wlr_dmabuf(output);
}
if &*session.config.capture_method == "screencopy" && has_wlr_screencopy {
log::info!("{}: Using Wlr Screencopy Wl-SHM", &output.name);
capture = ScreenRenderer::new_wlr_screencopy(output, &session.config);
capture = ScreenRenderer::new_wlr_screencopy(output);
}
if capture.is_none() {
@@ -949,7 +949,7 @@ pub fn create_screens_xshm(app: &mut AppState) -> anyhow::Result<ScreenCreateDat
let size = (s.monitor.width(), s.monitor.height());
let pos = (s.monitor.x(), s.monitor.y());
let renderer = ScreenRenderer::new_xshm(s.clone(), &app.session.config);
let renderer = ScreenRenderer::new_xshm(s.clone());
log::info!(
"{}: Init X11 screen of res {:?} at {:?}",

View File

@@ -1,7 +1,7 @@
use std::{io::Cursor, path::PathBuf, sync::Arc};
use std::{io::Cursor, sync::Arc};
use anyhow::bail;
use glam::{Affine3A, Vec3};
use glam::Affine3A;
use idmap::IdMap;
use rodio::{Decoder, OutputStream, OutputStreamHandle, Source};
use serde::{Deserialize, Serialize};
@@ -89,15 +89,9 @@ impl AppState {
}
pub struct AppSession {
pub config_root_path: PathBuf,
pub config: GeneralConfig,
pub toast_topics: IdMap<ToastTopic, DisplayMethod>,
pub color_norm: Vec3,
pub color_shift: Vec3,
pub color_alt: Vec3,
pub color_grab: Vec3,
}
impl AppSession {
@@ -116,29 +110,8 @@ impl AppSession {
});
AppSession {
config_root_path,
config,
toast_topics,
color_norm: Vec3 {
x: 0.,
y: 1.,
z: 1.,
},
color_shift: Vec3 {
x: 1.,
y: 1.,
z: 0.,
},
color_alt: Vec3 {
x: 1.,
y: 0.,
z: 1.,
},
color_grab: Vec3 {
x: 1.,
y: 0.,
z: 0.,
},
}
}
}