mach: wasm: add note about vsync support and move VSyncMode to enums.zig
This commit is contained in:
parent
488131ecbb
commit
8d9ca11b45
3 changed files with 25 additions and 19 deletions
|
|
@ -1,3 +1,25 @@
|
|||
pub const VSyncMode = enum {
|
||||
/// Potential screen tearing.
|
||||
/// No synchronization with monitor, render frames as fast as possible.
|
||||
///
|
||||
/// Not available on WASM, fallback to double
|
||||
none,
|
||||
|
||||
/// No tearing, synchronizes rendering with monitor refresh rate, rendering frames when ready.
|
||||
///
|
||||
/// Tries to stay one frame ahead of the monitor, so when it's ready for the next frame it is
|
||||
/// already prepared.
|
||||
double,
|
||||
|
||||
/// No tearing, synchronizes rendering with monitor refresh rate, rendering frames when ready.
|
||||
///
|
||||
/// Tries to stay two frames ahead of the monitor, so when it's ready for the next frame it is
|
||||
/// already prepared.
|
||||
///
|
||||
/// Not available on WASM, fallback to double
|
||||
triple,
|
||||
};
|
||||
|
||||
pub const Key = enum {
|
||||
a,
|
||||
b,
|
||||
|
|
|
|||
|
|
@ -11,24 +11,6 @@ pub const SizeOptional = struct {
|
|||
height: ?u32,
|
||||
};
|
||||
|
||||
pub const VSyncMode = enum {
|
||||
/// Potential screen tearing.
|
||||
/// No synchronization with monitor, render frames as fast as possible.
|
||||
none,
|
||||
|
||||
/// No tearing, synchronizes rendering with monitor refresh rate, rendering frames when ready.
|
||||
///
|
||||
/// Tries to stay one frame ahead of the monitor, so when it's ready for the next frame it is
|
||||
/// already prepared.
|
||||
double,
|
||||
|
||||
/// No tearing, synchronizes rendering with monitor refresh rate, rendering frames when ready.
|
||||
///
|
||||
/// Tries to stay two frames ahead of the monitor, so when it's ready for the next frame it is
|
||||
/// already prepared.
|
||||
triple,
|
||||
};
|
||||
|
||||
/// Application options that can be configured at init time.
|
||||
pub const Options = struct {
|
||||
/// The title of the window.
|
||||
|
|
@ -41,7 +23,7 @@ pub const Options = struct {
|
|||
height: u32 = 480,
|
||||
|
||||
/// Monitor synchronization modes.
|
||||
vsync: VSyncMode = .double,
|
||||
vsync: enums.VSyncMode = .double,
|
||||
|
||||
/// GPU features required by the application.
|
||||
required_features: ?[]gpu.Feature = null,
|
||||
|
|
|
|||
|
|
@ -106,6 +106,8 @@ export fn wasmInit() void {
|
|||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
const allocator = gpa.allocator();
|
||||
|
||||
// NOTE: On wasm, vsync is double by default and cannot be changed.
|
||||
// Hence options.vsync is not used anywhere.
|
||||
const options = if (@hasDecl(App, "options")) App.options else structs.Options{};
|
||||
engine = Engine.init(allocator, options) catch unreachable;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue