UNPKG

wonder.js

Version:
391 lines (360 loc) 11.3 kB
'use strict'; var Caml_option = require("bs-platform/lib/js/caml_option.js"); var Log$WonderLog = require("wonder-log/lib/js/src/Log.js"); var Contract$WonderLog = require("wonder-log/lib/js/src/Contract.js"); var OptionService$Wonderjs = require("../../../atom/OptionService.js"); var StateDataMain$Wonderjs = require("../../../state/main/data/StateDataMain.js"); var IsDebugMainService$Wonderjs = require("../../../state/main/state/IsDebugMainService.js"); function unsafeGetGl(record) { var gl = record[/* gl */0]; Contract$WonderLog.requireCheck((function (param) { return Contract$WonderLog.test(Log$WonderLog.buildAssertMessage("gl exist", "not"), (function (param) { return Contract$WonderLog.assertExist(gl); })); }), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData)); return OptionService$Wonderjs.unsafeGet(gl); } function setGl(gl, record) { return /* record */[ /* gl */Caml_option.some(gl), /* colorWrite */record[/* colorWrite */1], /* depthWrite */record[/* depthWrite */2], /* clearColor */record[/* clearColor */3], /* side */record[/* side */4], /* depthTest */record[/* depthTest */5], /* scissorTest */record[/* scissorTest */6], /* scissor */record[/* scissor */7], /* viewport */record[/* viewport */8] ]; } function setColorWrite(gl, param, record) { var colorWrite = record[/* colorWrite */1]; var writeAlpha = param[3]; var writeBlue = param[2]; var writeGreen = param[1]; var writeRed = param[0]; var exit = 0; if (colorWrite !== undefined) { var match = colorWrite; if (match[0] === writeRed && match[1] === writeGreen && match[2] === writeBlue && match[3] === writeAlpha) { return record; } else { exit = 1; } } else { exit = 1; } if (exit === 1) { gl.colorMask(writeRed, writeGreen, writeBlue, writeAlpha); return /* record */[ /* gl */record[/* gl */0], /* colorWrite *//* tuple */[ writeRed, writeGreen, writeBlue, writeAlpha ], /* depthWrite */record[/* depthWrite */2], /* clearColor */record[/* clearColor */3], /* side */record[/* side */4], /* depthTest */record[/* depthTest */5], /* scissorTest */record[/* scissorTest */6], /* scissor */record[/* scissor */7], /* viewport */record[/* viewport */8] ]; } } function setDepthWrite(gl, writeDepth, record) { var depthWrite = record[/* depthWrite */2]; var exit = 0; if (depthWrite !== undefined && depthWrite === writeDepth) { return record; } else { exit = 1; } if (exit === 1) { gl.depthMask(writeDepth); return /* record */[ /* gl */record[/* gl */0], /* colorWrite */record[/* colorWrite */1], /* depthWrite */writeDepth, /* clearColor */record[/* clearColor */3], /* side */record[/* side */4], /* depthTest */record[/* depthTest */5], /* scissorTest */record[/* scissorTest */6], /* scissor */record[/* scissor */7], /* viewport */record[/* viewport */8] ]; } } function setDepthFunc(gl, targetFunc, record) { gl.depthFunc(targetFunc); return record; } function _setSide(gl, targetSide) { switch (targetSide) { case 0 : gl.enable(gl.CULL_FACE); gl.cullFace(gl.FRONT_AND_BACK); return /* () */0; case 1 : gl.disable(gl.CULL_FACE); return /* () */0; case 2 : gl.enable(gl.CULL_FACE); gl.cullFace(gl.BACK); return /* () */0; case 3 : gl.enable(gl.CULL_FACE); gl.cullFace(gl.FRONT); return /* () */0; } } function setSide(gl, targetSide, record) { var side = record[/* side */4]; var exit = 0; if (side !== undefined && side === targetSide) { return record; } else { exit = 1; } if (exit === 1) { _setSide(gl, targetSide); return /* record */[ /* gl */record[/* gl */0], /* colorWrite */record[/* colorWrite */1], /* depthWrite */record[/* depthWrite */2], /* clearColor */record[/* clearColor */3], /* side */targetSide, /* depthTest */record[/* depthTest */5], /* scissorTest */record[/* scissorTest */6], /* scissor */record[/* scissor */7], /* viewport */record[/* viewport */8] ]; } } function _setDepthTest(gl, targetDepthTest) { if (targetDepthTest) { gl.enable(gl.DEPTH_TEST); return /* () */0; } else { gl.disable(gl.DEPTH_TEST); return /* () */0; } } function setDepthTest(gl, targetDepthTest, record) { var depthTest = record[/* depthTest */5]; var exit = 0; if (depthTest !== undefined && depthTest === targetDepthTest) { return record; } else { exit = 1; } if (exit === 1) { _setDepthTest(gl, targetDepthTest); return /* record */[ /* gl */record[/* gl */0], /* colorWrite */record[/* colorWrite */1], /* depthWrite */record[/* depthWrite */2], /* clearColor */record[/* clearColor */3], /* side */record[/* side */4], /* depthTest */targetDepthTest, /* scissorTest */record[/* scissorTest */6], /* scissor */record[/* scissor */7], /* viewport */record[/* viewport */8] ]; } } function _setScissorTest(gl, targetScissorTest) { if (targetScissorTest) { gl.enable(gl.SCISSOR_TEST); return /* () */0; } else { gl.disable(gl.SCISSOR_TEST); return /* () */0; } } function setScissorTest(gl, targetScissorTest, record) { var scissorTest = record[/* scissorTest */6]; var exit = 0; if (scissorTest !== undefined && scissorTest === targetScissorTest) { return record; } else { exit = 1; } if (exit === 1) { _setScissorTest(gl, targetScissorTest); return /* record */[ /* gl */record[/* gl */0], /* colorWrite */record[/* colorWrite */1], /* depthWrite */record[/* depthWrite */2], /* clearColor */record[/* clearColor */3], /* side */record[/* side */4], /* depthTest */record[/* depthTest */5], /* scissorTest */targetScissorTest, /* scissor */record[/* scissor */7], /* viewport */record[/* viewport */8] ]; } } function setScissorOfGl(gl, param, record) { var scissor = record[/* scissor */7]; var height = param[3]; var width = param[2]; var y = param[1]; var x = param[0]; var exit = 0; if (scissor !== undefined) { var match = scissor; if (match[0] === x && match[1] === y && match[2] === width && match[3] === height) { return record; } else { exit = 1; } } else { exit = 1; } if (exit === 1) { gl.scissor(x, y, width, height); return /* record */[ /* gl */record[/* gl */0], /* colorWrite */record[/* colorWrite */1], /* depthWrite */record[/* depthWrite */2], /* clearColor */record[/* clearColor */3], /* side */record[/* side */4], /* depthTest */record[/* depthTest */5], /* scissorTest */record[/* scissorTest */6], /* scissor *//* tuple */[ x, y, width, height ], /* viewport */record[/* viewport */8] ]; } } function setStencilTest(gl, targetStencilTest, record) { if (targetStencilTest) { gl.enable(gl.STENCIL_TEST); } else { gl.disable(gl.STENCIL_TEST); } return record; } function setStencilMask(gl, targetStencilMask, record) { gl.stencilMask(targetStencilMask); return record; } function setStencilFunc(gl, param, record) { gl.stencilFunc(param[0], param[1], param[2]); return record; } function setStencilOp(gl, param, record) { gl.stencilOp(param[0], param[1], param[2]); return record; } function clearBuffer(gl, bit, record) { var record$1 = setColorWrite(gl, /* tuple */[ true, true, true, true ], record); gl.clear(bit); return record$1; } function clearColor(gl, param, record) { var clearColor$1 = record[/* clearColor */3]; var a = param[3]; var b = param[2]; var g = param[1]; var r = param[0]; var exit = 0; if (clearColor$1 !== undefined) { var match = clearColor$1; if (match[0] === r && match[1] === g && match[2] === b && match[3] === a) { return record; } else { exit = 1; } } else { exit = 1; } if (exit === 1) { gl.clearColor(r, g, b, a); return /* record */[ /* gl */record[/* gl */0], /* colorWrite */record[/* colorWrite */1], /* depthWrite */record[/* depthWrite */2], /* clearColor *//* tuple */[ r, g, b, a ], /* side */record[/* side */4], /* depthTest */record[/* depthTest */5], /* scissorTest */record[/* scissorTest */6], /* scissor */record[/* scissor */7], /* viewport */record[/* viewport */8] ]; } } function setViewportOfGl(gl, param, record) { var viewport = record[/* viewport */8]; var height = param[3]; var width = param[2]; var y = param[1]; var x = param[0]; var exit = 0; if (viewport !== undefined) { var match = viewport; if (match[0] === x && match[1] === y && match[2] === width && match[3] === height) { return record; } else { exit = 1; } } else { exit = 1; } if (exit === 1) { gl.viewport(x, y, width, height); return /* record */[ /* gl */record[/* gl */0], /* colorWrite */record[/* colorWrite */1], /* depthWrite */record[/* depthWrite */2], /* clearColor */record[/* clearColor */3], /* side */record[/* side */4], /* depthTest */record[/* depthTest */5], /* scissorTest */record[/* scissorTest */6], /* scissor */record[/* scissor */7], /* viewport *//* tuple */[ x, y, width, height ] ]; } } exports.unsafeGetGl = unsafeGetGl; exports.setGl = setGl; exports.setColorWrite = setColorWrite; exports.setDepthWrite = setDepthWrite; exports.setDepthFunc = setDepthFunc; exports._setSide = _setSide; exports.setSide = setSide; exports._setDepthTest = _setDepthTest; exports.setDepthTest = setDepthTest; exports._setScissorTest = _setScissorTest; exports.setScissorTest = setScissorTest; exports.setScissorOfGl = setScissorOfGl; exports.setStencilTest = setStencilTest; exports.setStencilMask = setStencilMask; exports.setStencilFunc = setStencilFunc; exports.setStencilOp = setStencilOp; exports.clearBuffer = clearBuffer; exports.clearColor = clearColor; exports.setViewportOfGl = setViewportOfGl; /* Log-WonderLog Not a pure module */