mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-16 19:02:23 -07:00
Add WebGL runtime into the js/runtime.mjs; Allow for multiple WebGL contexts
This commit is contained in:
Vendored
-1034
File diff suppressed because it is too large
Load Diff
Vendored
+1
@@ -15,6 +15,7 @@ Texture :: distinct u32
|
||||
|
||||
@(default_calling_convention="c")
|
||||
foreign webgl {
|
||||
SetCurrentContextById :: proc(name: string) -> bool ---
|
||||
DrawingBufferWidth :: proc() -> i32 ---
|
||||
DrawingBufferHeight :: proc() -> i32 ---
|
||||
|
||||
|
||||
Vendored
+1055
-2
File diff suppressed because it is too large
Load Diff
Vendored
+10
-16
@@ -1,24 +1,18 @@
|
||||
import {WasmMemoryInterface, odinSetupDefaultImports} from "../js/runtime.mjs";
|
||||
import {WebGLInterface} from "../WebGL/runtime.mjs";
|
||||
import {WasmMemoryInterface, odinSetupDefaultImports, WebGLInterface} from "./runtime.mjs";
|
||||
|
||||
export async function runWasmCanvas(wasmPath, webglCanvasElement, consoleElement, extraForeignImports) {
|
||||
export async function runWasmCanvas(wasmPath, consoleElement, extraForeignImports) {
|
||||
let wasmMemoryInterface = new WasmMemoryInterface();
|
||||
|
||||
let imports = odinSetupDefaultImports(wasmMemoryInterface, consoleElement);
|
||||
let exports = {};
|
||||
|
||||
if (webglCanvasElement !== undefined) {
|
||||
let gl_context = new WebGLInterface(
|
||||
wasmMemoryInterface,
|
||||
webglCanvasElement,
|
||||
{antialias: false},
|
||||
);
|
||||
if (!gl_context.ctx) {
|
||||
return "WebGL is not available.";
|
||||
}
|
||||
imports["webgl"] = gl_context.getWebGL1Interface();
|
||||
imports["webgl2"] = gl_context.getWebGL2Interface();
|
||||
}
|
||||
let gl_context = new WebGLInterface(
|
||||
wasmMemoryInterface,
|
||||
null,
|
||||
{antialias: false},
|
||||
);
|
||||
imports["webgl"] = gl_context.getWebGL1Interface();
|
||||
imports["webgl2"] = gl_context.getWebGL2Interface();
|
||||
|
||||
if (extraForeignImports !== undefined) {
|
||||
imports = {
|
||||
@@ -60,4 +54,4 @@ export async function runWasmCanvas(wasmPath, webglCanvasElement, consoleElement
|
||||
};
|
||||
|
||||
|
||||
export {runWasmCanvas};
|
||||
export {runWasmCanvas};
|
||||
Reference in New Issue
Block a user