laser colors, improve scaling (wip)
This commit is contained in:
@@ -186,13 +186,17 @@ pub fn openxr_run(running: Arc<AtomicBool>) -> Result<(), BackendError> {
|
||||
|
||||
app_state.input_state.hmd = hmd_pose_from_views(&views);
|
||||
|
||||
overlays
|
||||
.iter_mut()
|
||||
.for_each(|o| o.state.auto_movement(&mut app_state));
|
||||
|
||||
let pointer_lengths = interact(&mut overlays, &mut app_state);
|
||||
for (idx, len) in pointer_lengths.iter().enumerate() {
|
||||
lines.draw_from(
|
||||
pointer_lines[idx],
|
||||
app_state.input_state.pointers[idx].pose,
|
||||
*len,
|
||||
0,
|
||||
app_state.input_state.pointers[idx].interaction.mode as usize + 1,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -210,6 +214,7 @@ pub fn openxr_run(running: Arc<AtomicBool>) -> Result<(), BackendError> {
|
||||
o.init(&mut app_state);
|
||||
o.data.init = true;
|
||||
}
|
||||
|
||||
o.render(&mut app_state);
|
||||
|
||||
if let Some(quad) = o.present_xr(&xr_state, &mut command_buffer) {
|
||||
|
||||
@@ -6,6 +6,7 @@ use super::{swapchain::SwapchainRenderData, transform_to_posef, XrState};
|
||||
use crate::{
|
||||
backend::{openxr::swapchain::create_swapchain_render_data, overlay::OverlayData},
|
||||
graphics::WlxCommandBuffer,
|
||||
state::AppState,
|
||||
};
|
||||
use vulkano::image::view::ImageView;
|
||||
|
||||
@@ -51,6 +52,11 @@ impl OverlayData<OpenXrOverlayData> {
|
||||
let sub_image = data.acquire_present_release(command_buffer, my_view);
|
||||
let posef = transform_to_posef(&self.state.transform);
|
||||
|
||||
let scale_x = self.state.transform.matrix3.col(0).length();
|
||||
log::info!("{}: scale_x = {}", self.state.name, scale_x);
|
||||
let aspect_ratio = self.backend.extent()[1] as f32 / self.backend.extent()[0] as f32;
|
||||
let scale_y = scale_x * aspect_ratio;
|
||||
|
||||
let quad = xr::CompositionLayerQuad::new()
|
||||
.pose(posef)
|
||||
.sub_image(sub_image)
|
||||
@@ -58,9 +64,8 @@ impl OverlayData<OpenXrOverlayData> {
|
||||
.layer_flags(CompositionLayerFlags::CORRECT_CHROMATIC_ABERRATION)
|
||||
.space(&xr.stage)
|
||||
.size(xr::Extent2Df {
|
||||
width: self.state.width,
|
||||
height: (self.backend.extent()[1] as f32 / self.backend.extent()[0] as f32)
|
||||
* self.state.width,
|
||||
width: scale_x,
|
||||
height: scale_y,
|
||||
});
|
||||
Some(quad)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user