uidev: make window translucent
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
<elements>
|
<elements>
|
||||||
<!-- background for testing -->
|
<!-- 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) -->
|
<!-- left/right separator (menu and rest) -->
|
||||||
<div flex_direction="row" gap="8" width="100%" height="100%">
|
<div flex_direction="row" gap="8" width="100%" height="100%">
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ use vulkano::{
|
|||||||
format::Format,
|
format::Format,
|
||||||
image::{ImageUsage, view::ImageView},
|
image::{ImageUsage, view::ImageView},
|
||||||
swapchain::{
|
swapchain::{
|
||||||
PresentMode, Surface, SurfaceInfo, Swapchain, SwapchainCreateInfo, SwapchainPresentInfo,
|
CompositeAlpha, PresentMode, Surface, SurfaceInfo, Swapchain, SwapchainCreateInfo,
|
||||||
acquire_next_image,
|
SwapchainPresentInfo, acquire_next_image,
|
||||||
},
|
},
|
||||||
sync::GpuFuture,
|
sync::GpuFuture,
|
||||||
};
|
};
|
||||||
@@ -53,7 +53,8 @@ fn init_logging() {
|
|||||||
/* read RUST_LOG env var */
|
/* read RUST_LOG env var */
|
||||||
EnvFilter::builder()
|
EnvFilter::builder()
|
||||||
.with_default_directive(LevelFilter::DEBUG.into())
|
.with_default_directive(LevelFilter::DEBUG.into())
|
||||||
.from_env_lossy(),
|
.from_env_lossy()
|
||||||
|
.add_directive("cosmic_text=info".parse().unwrap()),
|
||||||
)
|
)
|
||||||
.init();
|
.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)?;
|
let mut render_context = renderer_vk::context::Context::new(&mut shared_context, scale)?;
|
||||||
|
|
||||||
render_context.update_viewport(&mut shared_context, swapchain_size, 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 profiler = profiler::Profiler::new(1000);
|
||||||
let mut frame_index: u64 = 0;
|
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)
|
.update_viewport(&mut shared_context, swapchain_size, scale)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
println!("new swapchain_size: {swapchain_size:?}");
|
log::trace!("new swapchain_size: {swapchain_size:?}");
|
||||||
recreate = false;
|
recreate = false;
|
||||||
window.request_redraw();
|
window.request_redraw();
|
||||||
}
|
}
|
||||||
@@ -351,12 +352,14 @@ fn swapchain_create_info(
|
|||||||
surface: Arc<Surface>,
|
surface: Arc<Surface>,
|
||||||
extent: [u32; 2],
|
extent: [u32; 2],
|
||||||
) -> SwapchainCreateInfo {
|
) -> SwapchainCreateInfo {
|
||||||
let surface_capabilities = graphics
|
let mut surface_capabilities = graphics
|
||||||
.device
|
.device
|
||||||
.physical_device()
|
.physical_device()
|
||||||
.surface_capabilities(&surface, SurfaceInfo::default())
|
.surface_capabilities(&surface, SurfaceInfo::default())
|
||||||
.unwrap(); // want panic
|
.unwrap(); // want panic
|
||||||
|
|
||||||
|
surface_capabilities.supported_composite_alpha = CompositeAlpha::PreMultiplied.into();
|
||||||
|
|
||||||
SwapchainCreateInfo {
|
SwapchainCreateInfo {
|
||||||
min_image_count: surface_capabilities.min_image_count.max(2),
|
min_image_count: surface_capabilities.min_image_count.max(2),
|
||||||
present_mode: PresentMode::Mailbox,
|
present_mode: PresentMode::Mailbox,
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ pub fn init_window() -> anyhow::Result<(
|
|||||||
#[allow(deprecated)]
|
#[allow(deprecated)]
|
||||||
let window = Arc::new(
|
let window = Arc::new(
|
||||||
event_loop
|
event_loop
|
||||||
.create_window(Window::default_attributes())
|
.create_window(Window::default_attributes().with_transparent(true))
|
||||||
.unwrap(), // want panic
|
.unwrap(), // want panic
|
||||||
);
|
);
|
||||||
let surface = Surface::from_window(instance.clone(), window.clone())?;
|
let surface = Surface::from_window(instance.clone(), window.clone())?;
|
||||||
|
|||||||
@@ -4,9 +4,8 @@ use vulkano::{
|
|||||||
DeviceSize,
|
DeviceSize,
|
||||||
buffer::{Buffer, BufferCreateInfo, BufferUsage, Subbuffer},
|
buffer::{Buffer, BufferCreateInfo, BufferUsage, Subbuffer},
|
||||||
command_buffer::{
|
command_buffer::{
|
||||||
AutoCommandBufferBuilder, CommandBufferExecFuture, CopyBufferToImageInfo, CopyImageInfo,
|
AutoCommandBufferBuilder, CommandBufferExecFuture, CopyBufferToImageInfo, CopyImageInfo, PrimaryAutoCommandBuffer,
|
||||||
PrimaryAutoCommandBuffer, PrimaryCommandBufferAbstract, RenderingAttachmentInfo, RenderingInfo,
|
PrimaryCommandBufferAbstract, RenderingAttachmentInfo, RenderingInfo, SubpassContents,
|
||||||
SubpassContents,
|
|
||||||
},
|
},
|
||||||
device::Queue,
|
device::Queue,
|
||||||
format::Format,
|
format::Format,
|
||||||
@@ -68,9 +67,7 @@ impl WCommandBuffer<CmdBufGfx> {
|
|||||||
where
|
where
|
||||||
T: Sized,
|
T: Sized,
|
||||||
{
|
{
|
||||||
self
|
self.command_buffer.execute_commands(pass.command_buffer.clone())?;
|
||||||
.command_buffer
|
|
||||||
.execute_commands(pass.command_buffer.clone())?;
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,13 +78,7 @@ impl WCommandBuffer<CmdBufGfx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl WCommandBuffer<CmdBufXfer> {
|
impl WCommandBuffer<CmdBufXfer> {
|
||||||
pub fn upload_image(
|
pub fn upload_image(&mut self, width: u32, height: u32, format: Format, data: &[u8]) -> anyhow::Result<Arc<Image>> {
|
||||||
&mut self,
|
|
||||||
width: u32,
|
|
||||||
height: u32,
|
|
||||||
format: Format,
|
|
||||||
data: &[u8],
|
|
||||||
) -> anyhow::Result<Arc<Image>> {
|
|
||||||
let image = Image::new(
|
let image = Image::new(
|
||||||
self.graphics.memory_allocator.clone(),
|
self.graphics.memory_allocator.clone(),
|
||||||
ImageCreateInfo {
|
ImageCreateInfo {
|
||||||
|
|||||||
Reference in New Issue
Block a user