Compare commits
7 Commits
codex/make
...
nondescrip
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbf31e1df7 | ||
|
|
d1043f7b8c | ||
|
|
a9e4d91f9a | ||
|
|
877a32ab09 | ||
|
|
4ccee1bf89 | ||
|
|
6b78684650 | ||
|
|
4f75aa5edf |
38
src/main.rs
38
src/main.rs
@@ -17,7 +17,6 @@ use bevy::app::{App, ScheduleRunnerPlugin, TerminalCtrlCHandlerPlugin};
|
||||
use bevy::asset::{AssetMetaCheck, UnapprovedPathMode};
|
||||
use bevy::audio::AudioPlugin;
|
||||
use bevy::core_pipeline::CorePipelinePlugin;
|
||||
use bevy::core_pipeline::oit::OrderIndependentTransparencySettings;
|
||||
use bevy::diagnostic::DiagnosticsPlugin;
|
||||
use bevy::ecs::schedule::{ExecutorKind, ScheduleLabel};
|
||||
use bevy::gizmos::GizmoPlugin;
|
||||
@@ -28,7 +27,7 @@ use bevy::render::settings::{Backends, RenderCreation, WgpuSettings};
|
||||
use bevy::render::{RenderDebugFlags, RenderPlugin};
|
||||
use bevy::scene::ScenePlugin;
|
||||
use bevy::window::{CompositeAlphaMode, PresentMode};
|
||||
use bevy::winit::{WakeUp, WinitPlugin};
|
||||
use bevy::winit::{WakeUp, WinitPlugin, WinitSettings, UpdateMode};
|
||||
use bevy_dmabuf::import::DmabufImportPlugin;
|
||||
use bevy_mod_openxr::action_set_attaching::OxrActionAttachingPlugin;
|
||||
use bevy_mod_openxr::action_set_syncing::OxrActionSyncingPlugin;
|
||||
@@ -316,10 +315,10 @@ fn bevy_loop(
|
||||
.async_compute
|
||||
.on_thread_spawn = Some(enter_runtime_context.clone());
|
||||
plugins = plugins.set(task_pool_plugin);
|
||||
if args.flatscreen
|
||||
let flatscreenmode = args.flatscreen
|
||||
|| std::env::var_os("DISPLAY").is_some_and(|s| !s.is_empty())
|
||||
|| std::env::var_os("WAYLAND_DISPLAY").is_some_and(|s| !s.is_empty())
|
||||
{
|
||||
|| std::env::var_os("WAYLAND_DISPLAY").is_some_and(|s| !s.is_empty());
|
||||
if flatscreenmode {
|
||||
let mut plugin = WinitPlugin::<WakeUp>::default();
|
||||
plugin.run_on_any_thread = true;
|
||||
plugins = plugins
|
||||
@@ -370,7 +369,7 @@ fn bevy_loop(
|
||||
composite_alpha_mode: if args.transparent_flatscreen {
|
||||
CompositeAlphaMode::PreMultiplied
|
||||
} else {
|
||||
CompositeAlphaMode::Inherit
|
||||
CompositeAlphaMode::Auto
|
||||
},
|
||||
title: "StardustXR server flatscreen mode".to_string(),
|
||||
..default()
|
||||
@@ -379,6 +378,13 @@ fn bevy_loop(
|
||||
}),
|
||||
);
|
||||
|
||||
if flatscreenmode {
|
||||
app.insert_resource(WinitSettings {
|
||||
focused_mode: UpdateMode::Continuous,
|
||||
unfocused_mode: UpdateMode::Continuous,
|
||||
});
|
||||
}
|
||||
|
||||
app.add_plugins(bevy_sk::hand::HandPlugin);
|
||||
// app.add_plugins(HandGizmosPlugin);
|
||||
app.world_mut().resource_mut::<AmbientLight>().brightness = 1000.0;
|
||||
@@ -457,26 +463,6 @@ fn cam_observer(
|
||||
*msaa = Msaa::Off;
|
||||
}
|
||||
|
||||
fn add_oit(
|
||||
mut commands: Commands,
|
||||
cameras: Query<
|
||||
Entity,
|
||||
(
|
||||
With<Camera3d>,
|
||||
Without<OrderIndependentTransparencySettings>,
|
||||
),
|
||||
>,
|
||||
) {
|
||||
for entity in &cameras {
|
||||
commands
|
||||
.entity(entity)
|
||||
.insert(OrderIndependentTransparencySettings {
|
||||
layer_count: 4,
|
||||
alpha_threshold: 0.00,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
fn xr_step(world: &mut World) {
|
||||
// update things like the Xr input methods
|
||||
world.run_schedule(PreFrameWait);
|
||||
|
||||
@@ -77,6 +77,14 @@ fn build_line_mesh(
|
||||
let mut last = line.cyclic.then(|| line.points.last()).flatten();
|
||||
let mut peekable = line.points.iter().peekable();
|
||||
while let Some(curr) = peekable.next() {
|
||||
// Skip this point if it has the same position as the previous point
|
||||
if let Some(prev) = last {
|
||||
if Vec3::from(prev.point) == Vec3::from(curr.point) {
|
||||
last = Some(curr);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
let mut end = false;
|
||||
// Determine the next point - either the next in sequence or
|
||||
// for cyclic lines, wrap back to first point at the end
|
||||
@@ -93,6 +101,10 @@ fn build_line_mesh(
|
||||
}
|
||||
out
|
||||
};
|
||||
// if we can't make a full line, don't bother trying
|
||||
if point_windows.len() < 2 {
|
||||
continue;
|
||||
}
|
||||
for (last, curr, next, last_point) in point_windows {
|
||||
let last_quat = last.map(|v| {
|
||||
Quat::from_rotation_arc(
|
||||
|
||||
@@ -230,13 +230,11 @@ impl Surface {
|
||||
display_timestamp: MonotonicTimestamp,
|
||||
refresh_cycle: u64,
|
||||
) {
|
||||
self.message_sink
|
||||
.send(Message::SendPresentationFeedback {
|
||||
surface: self.clone(),
|
||||
display_timestamp,
|
||||
refresh_cycle,
|
||||
})
|
||||
.unwrap();
|
||||
let _ = self.message_sink.send(Message::SendPresentationFeedback {
|
||||
surface: self.clone(),
|
||||
display_timestamp,
|
||||
refresh_cycle,
|
||||
});
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "debug", skip_all)]
|
||||
|
||||
Reference in New Issue
Block a user