import { clone } from "../Source/Cesium.js"; import { defaultValue } from "../Source/Cesium.js"; import { Context } from "../Source/Cesium.js"; import createCanvas from "./createCanvas.js"; import createFrameState from "./createFrameState.js"; import getWebGLStub from "./getWebGLStub.js"; function createContext(options, canvasWidth, canvasHeight) { // clone options so we can change properties options = clone(defaultValue(options, {})); options.webgl = clone(defaultValue(options.webgl, {})); options.webgl.antialias = defaultValue(options.webgl.antialias, false); if (!!window.webglStub) { options.getWebGLStub = getWebGLStub; } var canvas = createCanvas(canvasWidth, canvasHeight); var context = new Context(canvas, options); if (!!window.webglValidation) { context.validateShaderProgram = true; context.validateFramebuffer = true; context.logShaderCompilation = true; context.throwOnWebGLError = true; } var us = context.uniformState; us.update(createFrameState(context)); // Add function for test context.destroyForSpecs = function () { document.body.removeChild(context.canvas); return context.destroy(); }; return context; } export default createContext;