uidev: make window translucent

This commit is contained in:
Aleksander
2025-09-21 19:06:09 +02:00
parent 46eb1ee00f
commit 858c5da21c
4 changed files with 15 additions and 21 deletions

View File

@@ -22,7 +22,7 @@
<elements>
<!-- background for testing -->
<rectangle position="absolute" color="#333333" width="100%" height="100%" />
<!-- <rectangle position="absolute" color="#333333" width="100%" height="100%" /> -->
<!-- left/right separator (menu and rest) -->
<div flex_direction="row" gap="8" width="100%" height="100%">

View File

@@ -13,8 +13,8 @@ use vulkano::{
format::Format,
image::{ImageUsage, view::ImageView},
swapchain::{
PresentMode, Surface, SurfaceInfo, Swapchain, SwapchainCreateInfo, SwapchainPresentInfo,
acquire_next_image,
CompositeAlpha, PresentMode, Surface, SurfaceInfo, Swapchain, SwapchainCreateInfo,
SwapchainPresentInfo, acquire_next_image,
},
sync::GpuFuture,
};
@@ -53,7 +53,8 @@ fn init_logging() {
/* read RUST_LOG env var */
EnvFilter::builder()
.with_default_directive(LevelFilter::DEBUG.into())
.from_env_lossy(),
.from_env_lossy()
.add_directive("cosmic_text=info".parse().unwrap()),
)
.init();
}
@@ -108,7 +109,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut render_context = renderer_vk::context::Context::new(&mut shared_context, scale)?;
render_context.update_viewport(&mut shared_context, swapchain_size, scale)?;
println!("new swapchain_size: {swapchain_size:?}");
log::trace!("new swapchain_size: {swapchain_size:?}");
let mut profiler = profiler::Profiler::new(1000);
let mut frame_index: u64 = 0;
@@ -263,7 +264,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.update_viewport(&mut shared_context, swapchain_size, scale)
.unwrap();
println!("new swapchain_size: {swapchain_size:?}");
log::trace!("new swapchain_size: {swapchain_size:?}");
recreate = false;
window.request_redraw();
}
@@ -351,12 +352,14 @@ fn swapchain_create_info(
surface: Arc<Surface>,
extent: [u32; 2],
) -> SwapchainCreateInfo {
let surface_capabilities = graphics
let mut surface_capabilities = graphics
.device
.physical_device()
.surface_capabilities(&surface, SurfaceInfo::default())
.unwrap(); // want panic
surface_capabilities.supported_composite_alpha = CompositeAlpha::PreMultiplied.into();
SwapchainCreateInfo {
min_image_count: surface_capabilities.min_image_count.max(2),
present_mode: PresentMode::Mailbox,

View File

@@ -41,7 +41,7 @@ pub fn init_window() -> anyhow::Result<(
#[allow(deprecated)]
let window = Arc::new(
event_loop
.create_window(Window::default_attributes())
.create_window(Window::default_attributes().with_transparent(true))
.unwrap(), // want panic
);
let surface = Surface::from_window(instance.clone(), window.clone())?;

View File

@@ -4,9 +4,8 @@ use vulkano::{
DeviceSize,
buffer::{Buffer, BufferCreateInfo, BufferUsage, Subbuffer},
command_buffer::{
AutoCommandBufferBuilder, CommandBufferExecFuture, CopyBufferToImageInfo, CopyImageInfo,
PrimaryAutoCommandBuffer, PrimaryCommandBufferAbstract, RenderingAttachmentInfo, RenderingInfo,
SubpassContents,
AutoCommandBufferBuilder, CommandBufferExecFuture, CopyBufferToImageInfo, CopyImageInfo, PrimaryAutoCommandBuffer,
PrimaryCommandBufferAbstract, RenderingAttachmentInfo, RenderingInfo, SubpassContents,
},
device::Queue,
format::Format,
@@ -68,9 +67,7 @@ impl WCommandBuffer<CmdBufGfx> {
where
T: Sized,
{
self
.command_buffer
.execute_commands(pass.command_buffer.clone())?;
self.command_buffer.execute_commands(pass.command_buffer.clone())?;
Ok(())
}
@@ -81,13 +78,7 @@ impl WCommandBuffer<CmdBufGfx> {
}
impl WCommandBuffer<CmdBufXfer> {
pub fn upload_image(
&mut self,
width: u32,
height: u32,
format: Format,
data: &[u8],
) -> anyhow::Result<Arc<Image>> {
pub fn upload_image(&mut self, width: u32, height: u32, format: Format, data: &[u8]) -> anyhow::Result<Arc<Image>> {
let image = Image::new(
self.graphics.memory_allocator.clone(),
ImageCreateInfo {