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 {
|
pub const Key = enum {
|
||||||
a,
|
a,
|
||||||
b,
|
b,
|
||||||
|
|
|
||||||
|
|
@ -11,24 +11,6 @@ pub const SizeOptional = struct {
|
||||||
height: ?u32,
|
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.
|
/// Application options that can be configured at init time.
|
||||||
pub const Options = struct {
|
pub const Options = struct {
|
||||||
/// The title of the window.
|
/// The title of the window.
|
||||||
|
|
@ -41,7 +23,7 @@ pub const Options = struct {
|
||||||
height: u32 = 480,
|
height: u32 = 480,
|
||||||
|
|
||||||
/// Monitor synchronization modes.
|
/// Monitor synchronization modes.
|
||||||
vsync: VSyncMode = .double,
|
vsync: enums.VSyncMode = .double,
|
||||||
|
|
||||||
/// GPU features required by the application.
|
/// GPU features required by the application.
|
||||||
required_features: ?[]gpu.Feature = null,
|
required_features: ?[]gpu.Feature = null,
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,8 @@ export fn wasmInit() void {
|
||||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||||
const allocator = gpa.allocator();
|
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{};
|
const options = if (@hasDecl(App, "options")) App.options else structs.Options{};
|
||||||
engine = Engine.init(allocator, options) catch unreachable;
|
engine = Engine.init(allocator, options) catch unreachable;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue