Skip to content

Commit 8a9ec6b

Browse files
committed
[remove] override and add a warning when the requested mode doesn't match the actual one.
1 parent 02443e8 commit 8a9ec6b

File tree

1 file changed

+12
-25
lines changed
  • crates/lambda-rs/src/render

1 file changed

+12
-25
lines changed

crates/lambda-rs/src/render/mod.rs

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,6 @@ impl Default for PresentMode {
9090
}
9191
}
9292

93-
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
94-
enum PresentModeOverride {
95-
Vsync(bool),
96-
Explicit(PresentMode),
97-
}
98-
9993
/// Builder for configuring a `RenderContext` tied to one window.
10094
///
10195
/// Purpose
@@ -117,7 +111,7 @@ pub struct RenderContextBuilder {
117111
/// Reserved for future timeout handling during rendering (nanoseconds).
118112
/// Not currently enforced; kept for forward compatibility with runtime controls.
119113
_render_timeout: u64,
120-
present_mode: Option<PresentModeOverride>,
114+
present_mode: Option<PresentMode>,
121115
}
122116

123117
impl RenderContextBuilder {
@@ -143,7 +137,11 @@ impl RenderContextBuilder {
143137
/// When disabled, the builder requests a non‑vsync mode (immediate
144138
/// presentation) and falls back to a supported low-latency mode if needed.
145139
pub fn with_vsync(mut self, enabled: bool) -> Self {
146-
self.present_mode = Some(PresentModeOverride::Vsync(enabled));
140+
self.present_mode = Some(if enabled {
141+
PresentMode::Vsync
142+
} else {
143+
PresentMode::Immediate
144+
});
147145
return self;
148146
}
149147

@@ -153,7 +151,7 @@ impl RenderContextBuilder {
153151
/// capabilities. If unsupported, the renderer falls back to a supported
154152
/// mode with similar behavior.
155153
pub fn with_present_mode(mut self, mode: PresentMode) -> Self {
156-
self.present_mode = Some(PresentModeOverride::Explicit(mode));
154+
self.present_mode = Some(mode);
157155
return self;
158156
}
159157

@@ -193,23 +191,12 @@ impl RenderContextBuilder {
193191
})?;
194192

195193
let size = window.dimensions();
196-
let requested_present_mode = match present_mode {
197-
Some(PresentModeOverride::Vsync(enabled)) => {
198-
if enabled {
199-
PresentMode::Vsync
200-
} else {
201-
PresentMode::Immediate
202-
}
194+
let requested_present_mode = present_mode.unwrap_or_else(|| {
195+
if window.vsync_requested() {
196+
return PresentMode::Vsync;
203197
}
204-
Some(PresentModeOverride::Explicit(mode)) => mode,
205-
None => {
206-
if window.vsync_requested() {
207-
PresentMode::Vsync
208-
} else {
209-
PresentMode::Immediate
210-
}
211-
}
212-
};
198+
return PresentMode::Immediate;
199+
});
213200
let platform_present_mode = match requested_present_mode {
214201
PresentMode::Vsync => targets::surface::PresentMode::Fifo,
215202
PresentMode::Immediate => targets::surface::PresentMode::Immediate,

0 commit comments

Comments
 (0)