Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
protected onInitialize(context: Context, callback: Invalidate,
/* mouseEventProvider: MouseEventProvider, */
/* keyEventProvider: KeyEventProvider, */
/* touchEventProvider: TouchEventProvider */): boolean {
/* Create framebuffers, textures, and render buffers. */
this._defaultFBO = new DefaultFramebuffer(this._context, 'DefaultFBO');
this._defaultFBO.initialize();
this._defaultFBO.bind();
/* Create and configure test navigation. */
this._camera = new Camera();
/* Create and configure label pass. */
this._labelPass = new LabelRenderPass(context);
this._labelPass.initialize();
this._labelPass.camera = this._camera;
this._labelPass.target = this._defaultFBO;
this._labelPass.depthMask = true;
FontFace.fromFile('./data/opensans2048p160d16.fnt', context)
.then((fontFace) => {
for (const label of this._labelPass.labels) {
label.fontFace = fontFace;
}
this._fontFace = fontFace;
this.updateLabels();
this._uEye = this._program.uniform('u_eye');
this._uGeometryFlags = this._program.uniform('u_geometryFlags');
this._uPbrFlags = this._program.uniform('u_pbrFlags');
this._uBaseColorFactor = this._program.uniform('u_baseColorFactor');
this._uMetallicFactor = this._program.uniform('u_metallicFactor');
this._uRoughnessFactor = this._program.uniform('u_roughnessFactor');
this._uEmissiveFactor = this._program.uniform('u_emissiveFactor');
this._uNormalScale = this._program.uniform('u_normalScale');
this._uSpecularEnvironment = this._program.uniform('u_specularEnvironment');
this._uBRDFLookupTable = this._program.uniform('u_brdfLUT');
/* Create and configure camera. */
this._camera = new Camera();
this._camera.center = vec3.fromValues(0.0, 0.0, 0.0);
this._camera.up = vec3.fromValues(0.0, 1.0, 0.0);
this._camera.eye = vec3.fromValues(0.0, 3.0, 1.0);
this._camera.near = 0.1;
this._camera.far = 32.0;
/* Create and configure navigation */
this._navigation = new Navigation(callback, mouseEventProvider);
this._navigation.camera = this._camera;
/* Create and configure forward pass. */
this._forwardPass = new ForwardSceneRenderPass(context);
this._forwardPass.initialize();
protected onInitialize(context: Context, callback: Invalidate,
/* mouseEventProvider: MouseEventProvider, */
/* keyEventProvider: KeyEventProvider, */
/* touchEventProvider: TouchEventProvider */): boolean {
/* Create framebuffers, textures, and render buffers. */
this._defaultFBO = new DefaultFramebuffer(this._context, 'DefaultFBO');
this._defaultFBO.initialize();
/* Create and configure test navigation. */
this._camera = new Camera();
/* Create and configure label pass. */
this._labelPass = new LabelRenderPass(context);
this._labelPass.initialize();
this._labelPass.camera = this._camera;
this._labelPass.target = this._defaultFBO;
this._labelPass.depthMask = false;
FontFace.fromFile('./data/opensans2048p160d16.fnt', context)
.then((fontFace) => {
for (const label of this._labelPass.labels) {
label.fontFace = fontFace;
}
this._fontFace = fontFace;
this.updateLabels();
this._program = new Program(context, 'ParticleProgram');
this._program.initialize([vert, frag], false);
this._program.attribute('a_uv', this._uvLocation);
this._program.attribute('a_position', this._positionLocation);
this._program.link();
this._program.bind();
this._uView = this._program.uniform('u_view');
this._uViewProjection = this._program.uniform('u_viewProjection');
this._uLight = this._program.uniform('u_light');
this._camera = new Camera();
this._camera.center = vec3.fromValues(0.0, 0.0, 0.0);
this._camera.up = vec3.fromValues(0.0, 1.0, 0.0);
this._camera.eye = vec3.fromValues(0.0, 0.0, 5.0);
this._camera.near = 0.1;
this._camera.far = 5.0 + Math.sqrt(32.0); // 1² + 1² -> range in that particles are generated ...
gl.uniform2f(this._program.uniform('u_nearFar'), this._camera.near, this._camera.far);
this._navigation = new Navigation(callback, mouseEventProvider);
this._navigation.camera = this._camera;
// prepare draw binding
this._uMeshViewMatrix = this._meshProgram.uniform('u_lightViewMatrix');
this._uMeshProjectionMatrix = this._meshProgram.uniform('u_lightProjectionMatrix');
this._uMeshFarPlane = this._meshProgram.uniform('u_lightFarPlane');
this._uCameraViewProjectionMatrix = this._meshProgram.uniform('u_cameraViewProjectionMatrix');
this._uMeshDepthTexture = this._meshProgram.uniform('u_depthTexture');
// Setup Cameras
this._camera = new Camera();
this._camera.center = vec3.fromValues(0.0, 0.0, 0.0);
vec3.normalize(this._camera.up, vec3.fromValues(-1.0, 1.0, 0.0));
this._camera.eye = vec3.fromValues(6.0, 6.0, 0.0);
this._camera.near = 3.0;
this._camera.far = 32.0;
this._light = new Camera();
this._light.center = vec3.fromValues(0.0, 0.0, 0.0);
vec3.normalize(this._light.up, vec3.fromValues(0.0, 1.0, -1.0));
this._light.eye = vec3.fromValues(0.0, 6.0, 6.0);
this._light.near = 3.0;
this._light.far = 16.0;
this._light.aspect = 1;
// Setup Navigation
this._navigation = new Navigation(callback, mouseEventProvider);
this._navigation.camera = this._camera;
// Setup Geometry
this._cube = new Cube(this._context, 'cube');
this._cube.initialize(0);
this._plane = new Plane(this._context, 'plane');
protected onInitialize(context: Context, callback: Invalidate, mouseEventProvider: MouseEventProvider): boolean {
const gl = this._context.gl;
const gl2facade = this._context.gl2facade;
/* Enable required extensions. */
if (this._extensions === false && this._context.isWebGL1) {
auxiliaries.assert(this._context.supportsStandardDerivatives,
`expected OES_standard_derivatives support`);
/* tslint:disable-next-line:no-unused-expression */
this._context.standardDerivatives;
this._extensions = true;
}
this._camera = new Camera();
this._camera.eye = _gEye;
this._camera.center = _gCenter;
this._camera.up = _gUp;
this._camera.near = 0.1;
this._camera.far = 4.0;
// Initialize navigation
this._navigation = new Navigation(callback, mouseEventProvider);
this._navigation.camera = this._camera;
// program
const vert = new Shader(this._context, gl.VERTEX_SHADER, 'cornell.vert');
vert.initialize(require('./cornell.vert'));
const frag = new Shader(this._context, gl.FRAGMENT_SHADER, 'cornell.frag');
frag.initialize(require(this._context.isWebGL1 ?
protected onInitialize(context: Context, callback: Invalidate, mouseEventProvider: MouseEventProvider,
/* keyEventProvider: KeyEventProvider, */
/* touchEventProvider: TouchEventProvider */): boolean {
/* Create framebuffers, textures, and render buffers. */
this._defaultFBO = new DefaultFramebuffer(this._context, 'DefaultFBO');
this._defaultFBO.initialize();
/* Create and configure test navigation. */
this._camera = new Camera();
this._camera.eye = vec3.fromValues(0.0, 0.0, 1.0);
this._camera.center = vec3.fromValues(0.0, 0.0, 0.0);
this._camera.up = vec3.fromValues(0.0, 1.0, 0.0);
this._camera.near = 0.1;
this._camera.far = 4.0;
this._navigation = new Navigation(callback, mouseEventProvider);
this._navigation.camera = this._camera;
/* Create and configure label pass. */
this._labelPass = new LabelRenderPass(context);
this._labelPass.initialize();
this._labelPass.camera = this._camera;
this._labelPass.target = this._defaultFBO;
this._labelPass.depthMask = false;
this._texture.initialize(1, 1, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE);
this._texture.wrap(gl.REPEAT, gl.REPEAT);
this._texture.filter(gl.LINEAR, gl.LINEAR_MIPMAP_LINEAR);
this._texture.maxAnisotropy(Texture2D.MAX_ANISOTROPY);
this._texture.fetch('./data/blue_painted_planks_diff_1k_modified.webp', false).then(() => {
const gl = context.gl;
this._program.bind();
gl.uniform1i(this._program.uniform('u_textured'), true);
this.invalidate(true);
});
this._camera = new Camera();
this._camera.center = vec3.fromValues(0.0, 0.0, 0.0);
this._camera.up = vec3.fromValues(0.0, 1.0, 0.0);
this._camera.eye = vec3.fromValues(0.0, 0.0, 5.0);
this._camera.near = 1.0;
this._camera.far = 8.0;
this._navigation = new Navigation(callback, mouseEventProvider);
this._navigation.camera = this._camera;
return true;
}
this._defaultFBO.bind();
const gl = context.gl as WebGLRenderingContext;
this._cuboids = new Array(4);
for (let i = 0; i < this._cuboids.length; ++i) {
this._cuboids[i] = new CuboidGeometry(context, 'cube', true, [0.25, 0.5 + 0.5 * i, 2.0]);
this._cuboids[i].initialize();
}
this._plane = new PlaneGeometry(context, 'plane');
this._plane.initialize();
this._plane.scale = vec2.fromValues(100, 100);
this._camera = new Camera();
this._camera.center = vec3.fromValues(0.0, 0.75, 0.0);
this._camera.up = vec3.fromValues(0.0, 1.0, 0.0);
this._camera.eye = vec3.fromValues(1.8, 2.6, 3.4);
this._camera.near = 2.0;
this._camera.far = 11.0;
this._light = new Camera();
this._light.center = vec3.fromValues(0.0, 0.0, 0.0);
this._light.up = vec3.fromValues(0.0, 1.0, 0.0);
this._light.eye = vec3.fromValues(-3.0, 5.0, 4.0);
this._light.near = 3.0;
this._light.far = 20.0;
const vert = new Shader(context, gl.VERTEX_SHADER, 'mesh-shadowed.vert');
this._texture = new Texture2D(context, 'Texture');
this._texture.initialize(1, 1, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE);
this._texture.wrap(gl.REPEAT, gl.REPEAT);
this._texture.filter(gl.LINEAR, gl.LINEAR_MIPMAP_LINEAR);
this._texture.maxAnisotropy(Texture2D.MAX_ANISOTROPY);
this._texture.fetch('./data/triangle-texture.webp', false).then(() => {
const gl = context.gl;
this._program.bind();
gl.uniform1i(this._program.uniform('u_textured'), true);
this.invalidate(true);
});
this._camera = new Camera();
this._camera.center = vec3.fromValues(0.0, 0.0, 0.0);
this._camera.up = vec3.fromValues(0.0, 1.0, 0.0);
this._camera.eye = vec3.fromValues(0.0, 0.0, 5.0);
this._camera.near = 1.0;
this._camera.far = 8.0;
this._navigation = new Navigation(callback, mouseEventProvider);
this._navigation.camera = this._camera;
return true;
}