From 3644cb6def4f681c99959e5729e78ea353441fad Mon Sep 17 00:00:00 2001
From: Kris Kowal
Date: Fri, 6 Jul 2012 12:34:53 -0700
Subject: Normalize to unix line terminators
---
.../RDGE/src/core/script/MeshManager.js | 494 +--
.../RDGE/src/core/script/RenderInitProcs.js | 518 +--
.../RDGE/src/core/script/RenderProcs.js | 1022 +++---
.../RDGE/src/core/script/ScreenQuad.js | 106 +-
.../RDGE/src/core/script/ShaderManager.js | 220 +-
.../RDGE/src/core/script/animation.js | 690 ++--
js/helper-classes/RDGE/src/core/script/box.js | 324 +-
js/helper-classes/RDGE/src/core/script/camera.js | 550 ++--
js/helper-classes/RDGE/src/core/script/engine.js | 922 +++---
js/helper-classes/RDGE/src/core/script/fx/blur.js | 434 +--
js/helper-classes/RDGE/src/core/script/fx/ssao.js | 278 +-
.../RDGE/src/core/script/init_state.js | 558 ++--
js/helper-classes/RDGE/src/core/script/jpass.js | 1346 ++++----
js/helper-classes/RDGE/src/core/script/jshader.js | 1528 ++++-----
.../RDGE/src/core/script/lightmanager.js | 238 +-
.../RDGE/src/core/script/math/mat4.js | 1538 ++++-----
.../RDGE/src/core/script/math/quat.js | 500 +--
.../RDGE/src/core/script/math/vec2.js | 432 +--
.../RDGE/src/core/script/math/vec3.js | 748 ++---
.../RDGE/src/core/script/math/vec4.js | 566 ++--
.../RDGE/src/core/script/objectManager.js | 196 +-
js/helper-classes/RDGE/src/core/script/particle.js | 1594 ++++-----
.../RDGE/src/core/script/precompiled.js | 196 +-
.../RDGE/src/core/script/renderUtils.js | 792 ++---
.../RDGE/src/core/script/rendercontext.js | 578 ++--
js/helper-classes/RDGE/src/core/script/renderer.js | 3370 ++++++++++----------
.../RDGE/src/core/script/run_state.js | 718 ++---
js/helper-classes/RDGE/src/core/script/runtime.js | 446 +--
.../RDGE/src/core/script/scenegraph.js | 2006 ++++++------
.../RDGE/src/core/script/scenegraphNodes.js | 1140 +++----
.../RDGE/src/core/script/shadowLight.js | 152 +-
js/helper-classes/RDGE/src/core/script/sockets.js | 362 +--
.../RDGE/src/core/script/utilities.js | 530 +--
33 files changed, 12546 insertions(+), 12546 deletions(-)
(limited to 'js')
diff --git a/js/helper-classes/RDGE/src/core/script/MeshManager.js b/js/helper-classes/RDGE/src/core/script/MeshManager.js
index 1fff19c5..eea94b74 100755
--- a/js/helper-classes/RDGE/src/core/script/MeshManager.js
+++ b/js/helper-classes/RDGE/src/core/script/MeshManager.js
@@ -1,247 +1,247 @@
-/*
-Copyright (c) 2012, Motorola Mobility, Inc
-All Rights Reserved.
-BSD License.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- - Neither the name of Motorola Mobility nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
- */
-
-// RDGE namespaces
-var RDGE = RDGE || {};
-
-RDGE.Model = function (name, mesh) {
- this.name = name;
- this.mesh = mesh;
- this.camera = null;
-};
-
-/*
- * Maintains a list of meshes to allow instancing of data
- */
-RDGE.MeshManager = function () {
- this.contentUrl = "assets_web/mesh/";
- this.modelMap = {};
- this.readyList = []; // meshes that have data ready
- this.meshesLoading = true; // indicates that no meshes have loaded or that they are still loading
- this.postMeshLoadCallbackList = [];
- this.tempSphere = null;
- this.requestCounter = 0;
-};
-
-/*
- * Pass the scene meshNode stump, loads temp object while real mesh is downloading
- */
-RDGE.MeshManager.prototype.loadMesh = function (meshStump, tempMesh) {
- // if it exists already, return the mesh requested
- if ( this.modelMap[meshStump.name] !== undefined )
- return this.modelMap[meshStump.name];
-
- meshStump.ready = false;
- meshStump.addr = this.contentUrl + meshStump.name + "_mesh.json";
- meshStump.ctxID = RDGE.globals.engine.getContext().renderer.id;
-
- // sets a temp mesh up in place of the final mesh to load
- if (!tempMesh) {
- if (this.tempSphere == null) {
- this.tempSphere = RDGE.renderUtils.makeSphere(RDGE.globals.engine.getContext().renderer.ctx, 25, 5, 5);
- }
-
- tempMesh = this.tempSphere;
- }
-
- // add the temp mesh to the map of loaded meshes
- this.modelMap[meshStump.name] = tempMesh;
-
- // update the request counter - we now have one more mesh to load
- this.requestCounter++;
-
- RDGE.requestMesh(meshStump);
-
- return null;
-};
-
-/*
- * Deletes the passed mesh from the manager as well as all renderers
- */
-RDGE.MeshManager.prototype.deleteMesh = function (name) {
- var model = this.modelMap[name];
-
- if (model) {
- RDGE.globals.engine.ctxMan.forEach(function (context) {
- context.renderer.deletePrimitive(model.primitive);
- });
-
- delete this.modelMap[name];
- }
-};
-
-RDGE.MeshManager.prototype.getModelByName = function (name) {
- return this.modelMap[name];
-};
-
-RDGE.MeshManager.prototype.getModelNames = function () {
- var names = [];
- for (var index in this.modelMap) {
- names.push(this.modelList[index].name);
- }
-
- return names;
-};
-
-
-RDGE.MeshManager.prototype.processMeshData = function () {
- var renderer = RDGE.globals.engine.getContext().renderer;
-
- // loop through meshes and load ready data
- for (var index in this.readyList) {
- // if item is ready load it
- if (this.readyList[index] && this.readyList[index].ready && renderer.id === this.readyList[index].ctxID) {
-
-
- // pop the item
- var model = this.readyList[index];
- this.readyList.splice(index, 1);
-
- var primset = new RDGE.rdgePrimitiveDefinition();
-
- primset.vertexDefinition =
- {
- // this shows two ways to map this data to an attribute
- "vert": { 'type': RDGE.rdgeConstants.VS_ELEMENT_POS, 'bufferIndex': 0, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
- "a_pos": { 'type': RDGE.rdgeConstants.VS_ELEMENT_POS, 'bufferIndex': 0, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
- "normal": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex': 1, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
- "a_norm": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex': 1, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
- "a_normal": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex': 1, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
- "texcoord": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
- "a_texcoord": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
- "a_texcoords": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
- "a_uv": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }
- };
-
- primset.bufferStreams =
- [
- model.root.data.coords,
- model.root.data.normals,
- model.root.data.uvs
- ];
-
- primset.streamUsage =
- [
- RDGE.rdgeConstants.BUFFER_STATIC,
- RDGE.rdgeConstants.BUFFER_STATIC,
- RDGE.rdgeConstants.BUFFER_STATIC
- ];
-
- primset.indexUsage = RDGE.rdgeConstants.BUFFER_STREAM;
-
- primset.indexBuffer = model.root.data.indices;
-
- renderer.createPrimitive( primset );
-
- model.root.primitive = primset;
-
- // generate a bounding box for this mesh
- model.root.bbox = new RDGE.box();
-
- var numCoords = model.root.data.coords.length; var idx = 0;
- while (idx < numCoords - 2) {
- var thisCoord = [model.root.data.coords[idx+0], model.root.data.coords[idx+1], model.root.data.coords[idx+2]];
- model.root.bbox.addVec3(thisCoord);
- idx += 3;
- }
-
- this.modelMap[model.root.attribs.name] = model.root;
-
- // now that the model is load reduce the request count
- this.requestCounter--;
-
- this.onLoaded(model.root.attribs.name);
- //break;
- }
-
- }
-};
-
-RDGE.MeshManager.prototype.isReady = function () {
- return this.readyList.length == 0;
-};
-
-RDGE.MeshManager.prototype.addOnLoadedCallback = function (callback) {
- this.postMeshLoadCallbackList.push(callback)
-};
-
-RDGE.MeshManager.prototype.onLoaded = function (meshName) {
- for (var index = 0 in this.postMeshLoadCallbackList) {
- // call the functions
- this.postMeshLoadCallbackList[index].onMeshLoaded(meshName);
- }
-};
-
-RDGE.MeshManager.prototype.exportJSON = function () {
- for (var m in this.modelMap) {
- this.modelMap[m].primitive.built = false;
- }
-
- return JSON.stringify(this.modelMap);
-};
-
-RDGE.MeshManager.prototype.importJSON = function (jsonMeshExport) {
- try {
- var tempModelMap = JSON.parse(jsonMeshExport);
-
- for (var m in tempModelMap) {
- if (!this.modelMap[m]) {
- this.modelMap[m] = tempModelMap[m];
- }
- }
- window.console.log("meshes imported");
- } catch (e) {
- window.console.error("error importing meshes: " + e.description );
- }
-};
-
-/*
- * global function for the mesh manager to make mesh file requests
- */
-RDGE.requestMesh = function (mesh) {
- var request = new XMLHttpRequest();
- request.mesh = mesh;
- request.onreadystatechange = function () {
- if (request.readyState == 4) {
- if (request.status == 200 || window.location.href.indexOf("http") == -1) {
- var mesh = eval("(" + request.responseText + ")"); //retrieve result as an JavaScript object
- mesh.ready = true;
- mesh.ctxID = request.mesh.ctxID;
- RDGE.globals.meshMan.readyList.push(mesh);
- }
- else {
- alert("An error has occured making the request");
- }
- }
- }
-
- request.open("GET", mesh.addr, true);
- request.send(null);
-};
+/*
+Copyright (c) 2012, Motorola Mobility, Inc
+All Rights Reserved.
+BSD License.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ - Neither the name of Motorola Mobility nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// RDGE namespaces
+var RDGE = RDGE || {};
+
+RDGE.Model = function (name, mesh) {
+ this.name = name;
+ this.mesh = mesh;
+ this.camera = null;
+};
+
+/*
+ * Maintains a list of meshes to allow instancing of data
+ */
+RDGE.MeshManager = function () {
+ this.contentUrl = "assets_web/mesh/";
+ this.modelMap = {};
+ this.readyList = []; // meshes that have data ready
+ this.meshesLoading = true; // indicates that no meshes have loaded or that they are still loading
+ this.postMeshLoadCallbackList = [];
+ this.tempSphere = null;
+ this.requestCounter = 0;
+};
+
+/*
+ * Pass the scene meshNode stump, loads temp object while real mesh is downloading
+ */
+RDGE.MeshManager.prototype.loadMesh = function (meshStump, tempMesh) {
+ // if it exists already, return the mesh requested
+ if ( this.modelMap[meshStump.name] !== undefined )
+ return this.modelMap[meshStump.name];
+
+ meshStump.ready = false;
+ meshStump.addr = this.contentUrl + meshStump.name + "_mesh.json";
+ meshStump.ctxID = RDGE.globals.engine.getContext().renderer.id;
+
+ // sets a temp mesh up in place of the final mesh to load
+ if (!tempMesh) {
+ if (this.tempSphere == null) {
+ this.tempSphere = RDGE.renderUtils.makeSphere(RDGE.globals.engine.getContext().renderer.ctx, 25, 5, 5);
+ }
+
+ tempMesh = this.tempSphere;
+ }
+
+ // add the temp mesh to the map of loaded meshes
+ this.modelMap[meshStump.name] = tempMesh;
+
+ // update the request counter - we now have one more mesh to load
+ this.requestCounter++;
+
+ RDGE.requestMesh(meshStump);
+
+ return null;
+};
+
+/*
+ * Deletes the passed mesh from the manager as well as all renderers
+ */
+RDGE.MeshManager.prototype.deleteMesh = function (name) {
+ var model = this.modelMap[name];
+
+ if (model) {
+ RDGE.globals.engine.ctxMan.forEach(function (context) {
+ context.renderer.deletePrimitive(model.primitive);
+ });
+
+ delete this.modelMap[name];
+ }
+};
+
+RDGE.MeshManager.prototype.getModelByName = function (name) {
+ return this.modelMap[name];
+};
+
+RDGE.MeshManager.prototype.getModelNames = function () {
+ var names = [];
+ for (var index in this.modelMap) {
+ names.push(this.modelList[index].name);
+ }
+
+ return names;
+};
+
+
+RDGE.MeshManager.prototype.processMeshData = function () {
+ var renderer = RDGE.globals.engine.getContext().renderer;
+
+ // loop through meshes and load ready data
+ for (var index in this.readyList) {
+ // if item is ready load it
+ if (this.readyList[index] && this.readyList[index].ready && renderer.id === this.readyList[index].ctxID) {
+
+
+ // pop the item
+ var model = this.readyList[index];
+ this.readyList.splice(index, 1);
+
+ var primset = new RDGE.rdgePrimitiveDefinition();
+
+ primset.vertexDefinition =
+ {
+ // this shows two ways to map this data to an attribute
+ "vert": { 'type': RDGE.rdgeConstants.VS_ELEMENT_POS, 'bufferIndex': 0, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
+ "a_pos": { 'type': RDGE.rdgeConstants.VS_ELEMENT_POS, 'bufferIndex': 0, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
+ "normal": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex': 1, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
+ "a_norm": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex': 1, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
+ "a_normal": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex': 1, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
+ "texcoord": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
+ "a_texcoord": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
+ "a_texcoords": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC },
+ "a_uv": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }
+ };
+
+ primset.bufferStreams =
+ [
+ model.root.data.coords,
+ model.root.data.normals,
+ model.root.data.uvs
+ ];
+
+ primset.streamUsage =
+ [
+ RDGE.rdgeConstants.BUFFER_STATIC,
+ RDGE.rdgeConstants.BUFFER_STATIC,
+ RDGE.rdgeConstants.BUFFER_STATIC
+ ];
+
+ primset.indexUsage = RDGE.rdgeConstants.BUFFER_STREAM;
+
+ primset.indexBuffer = model.root.data.indices;
+
+ renderer.createPrimitive( primset );
+
+ model.root.primitive = primset;
+
+ // generate a bounding box for this mesh
+ model.root.bbox = new RDGE.box();
+
+ var numCoords = model.root.data.coords.length; var idx = 0;
+ while (idx < numCoords - 2) {
+ var thisCoord = [model.root.data.coords[idx+0], model.root.data.coords[idx+1], model.root.data.coords[idx+2]];
+ model.root.bbox.addVec3(thisCoord);
+ idx += 3;
+ }
+
+ this.modelMap[model.root.attribs.name] = model.root;
+
+ // now that the model is load reduce the request count
+ this.requestCounter--;
+
+ this.onLoaded(model.root.attribs.name);
+ //break;
+ }
+
+ }
+};
+
+RDGE.MeshManager.prototype.isReady = function () {
+ return this.readyList.length == 0;
+};
+
+RDGE.MeshManager.prototype.addOnLoadedCallback = function (callback) {
+ this.postMeshLoadCallbackList.push(callback)
+};
+
+RDGE.MeshManager.prototype.onLoaded = function (meshName) {
+ for (var index = 0 in this.postMeshLoadCallbackList) {
+ // call the functions
+ this.postMeshLoadCallbackList[index].onMeshLoaded(meshName);
+ }
+};
+
+RDGE.MeshManager.prototype.exportJSON = function () {
+ for (var m in this.modelMap) {
+ this.modelMap[m].primitive.built = false;
+ }
+
+ return JSON.stringify(this.modelMap);
+};
+
+RDGE.MeshManager.prototype.importJSON = function (jsonMeshExport) {
+ try {
+ var tempModelMap = JSON.parse(jsonMeshExport);
+
+ for (var m in tempModelMap) {
+ if (!this.modelMap[m]) {
+ this.modelMap[m] = tempModelMap[m];
+ }
+ }
+ window.console.log("meshes imported");
+ } catch (e) {
+ window.console.error("error importing meshes: " + e.description );
+ }
+};
+
+/*
+ * global function for the mesh manager to make mesh file requests
+ */
+RDGE.requestMesh = function (mesh) {
+ var request = new XMLHttpRequest();
+ request.mesh = mesh;
+ request.onreadystatechange = function () {
+ if (request.readyState == 4) {
+ if (request.status == 200 || window.location.href.indexOf("http") == -1) {
+ var mesh = eval("(" + request.responseText + ")"); //retrieve result as an JavaScript object
+ mesh.ready = true;
+ mesh.ctxID = request.mesh.ctxID;
+ RDGE.globals.meshMan.readyList.push(mesh);
+ }
+ else {
+ alert("An error has occured making the request");
+ }
+ }
+ }
+
+ request.open("GET", mesh.addr, true);
+ request.send(null);
+};
diff --git a/js/helper-classes/RDGE/src/core/script/RenderInitProcs.js b/js/helper-classes/RDGE/src/core/script/RenderInitProcs.js
index 20b37abb..9f0a5e35 100755
--- a/js/helper-classes/RDGE/src/core/script/RenderInitProcs.js
+++ b/js/helper-classes/RDGE/src/core/script/RenderInitProcs.js
@@ -1,259 +1,259 @@
-/*
-Copyright (c) 2012, Motorola Mobility, Inc
-All Rights Reserved.
-BSD License.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- - Neither the name of Motorola Mobility nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
- */
-
-// RDGE namespaces
-var RDGE = RDGE || {};
-
-RDGE.renderInitProcDefault = function (primSet, vertexData) {
- var material = primSet.material;
-
- //push envMap tex
- material.tex.env.push(arrayPeek(material.shader).envMap);
- material.tex.envDiff.push(arrayPeek(material.shader).envDiff);
-
- gl.useProgram(arrayPeek(material.shader).shaderHandle);
-
- arrayPeek(material.renderObj).addTexture("layerMap1", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("layerMap2", 1, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("colorMeMap1", 2, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("colorMeMap2", 3, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("envMap", 4, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("envDiff", 5, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- arrayPeek(material.renderObj).addTexture("normalMap1", 15, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("normalMap2", 6, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- arrayPeek(material.renderObj).addTexture("stickerMap0", 7, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("stickerMap1", 8, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("stickerMap2", 9, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("stickerMap3", 10, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("stickerMap4", 11, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("stickerMap5", 12, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("stickerMap6", 13, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addTexture("stickerMap7", 14, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- arrayPeek(material.renderObj).addUniform("u_normalMatrix", gl.normalMatrix, RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_mvMatrix", gl.mvMatrix, RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_invMvMatrix", gl.invMvMatrix, RDGE.UNIFORMTYPE.MATRIX4);
-
- arrayPeek(material.renderObj).addUniform("u_stickerMatrix0", primSet.parentMesh.stickers[0], RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_stickerMatrix1", primSet.parentMesh.stickers[1], RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_stickerMatrix2", primSet.parentMesh.stickers[2], RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_stickerMatrix3", primSet.parentMesh.stickers[3], RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_stickerMatrix4", primSet.parentMesh.stickers[4], RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_stickerMatrix5", primSet.parentMesh.stickers[5], RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_stickerMatrix6", primSet.parentMesh.stickers[6], RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_stickerMatrix7", primSet.parentMesh.stickers[7], RDGE.UNIFORMTYPE.MATRIX4);
-
- arrayPeek(material.renderObj).addUniform("u_stickerPos0", primSet.parentMesh.stickersPos[0], RDGE.UNIFORMTYPE.FLOAT3);
- arrayPeek(material.renderObj).addUniform("u_stickerPos1", primSet.parentMesh.stickersPos[1], RDGE.UNIFORMTYPE.FLOAT3);
- arrayPeek(material.renderObj).addUniform("u_stickerPos2", primSet.parentMesh.stickersPos[2], RDGE.UNIFORMTYPE.FLOAT3);
- arrayPeek(material.renderObj).addUniform("u_stickerPos3", primSet.parentMesh.stickersPos[3], RDGE.UNIFORMTYPE.FLOAT3);
- arrayPeek(material.renderObj).addUniform("u_stickerPos4", primSet.parentMesh.stickersPos[4], RDGE.UNIFORMTYPE.FLOAT3);
- arrayPeek(material.renderObj).addUniform("u_stickerPos5", primSet.parentMesh.stickersPos[5], RDGE.UNIFORMTYPE.FLOAT3);
- arrayPeek(material.renderObj).addUniform("u_stickerPos6", primSet.parentMesh.stickersPos[6], RDGE.UNIFORMTYPE.FLOAT3);
- arrayPeek(material.renderObj).addUniform("u_stickerPos7", primSet.parentMesh.stickersPos[7], RDGE.UNIFORMTYPE.FLOAT3);
-
- arrayPeek(material.renderObj).addUniform("u_projMatrix", gl.perspectiveMatrix, RDGE.UNIFORMTYPE.MATRIX4);
-
- arrayPeek(material.renderObj).addUniform("u_fillColor1", material.fillColor[0], RDGE.UNIFORMTYPE.FLOAT4);
- arrayPeek(material.renderObj).addUniform("u_fillColor2", material.fillColor[1], RDGE.UNIFORMTYPE.FLOAT4);
- arrayPeek(material.renderObj).addUniform("u_skinColor", material.fillColor[2], RDGE.UNIFORMTYPE.FLOAT4);
-
- // debug---
- vertexData.vertexObject.name = "vertexObject";
- vertexData.normalObject.name = "normalObject";
- vertexData.texCoordObject.name = "texCoordObject";
- vertexData.indexObject.name = "indexObject";
- //----------
-
- arrayPeek(material.renderObj).addBuffers(vertexData.vertexObject, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
- arrayPeek(material.renderObj).addBuffers(vertexData.normalObject, gl.ARRAY_BUFFER, 3, 1, gl.FLOAT);
- arrayPeek(material.renderObj).addBuffers(vertexData.texCoordObject, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
- arrayPeek(material.renderObj).addBuffers(vertexData.indexObject, gl.ELEMENT_ARRAY_BUFFER);
-
- gl.useProgram(null);
- // gl.console.log("Mesh Init done!");
-};
-
-RDGE.renderInitScreenQuad = function (quad, shader) {
- if (shader == undefined) {
- quad.shader = RDGE.createShader(gl, 'screenQuad_vShader', 'screenQuad_fShader', ["vert", "texcoord"]);
- }
- else {
- quad.shader = shader;
- }
-
- quad.renderObj = new RDGE.RenderObject(quad.shader);
-
- quadBuf = getScreenAlignedQuad();
-
- quad.vertBuffer = quadBuf.vertexObject;
- quad.uvBuffer = quadBuf.texCoordObject;
-
-
- quad.renderObj.addTexture("basemap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- var invWidth = (RDGE.globals.width == 0.0) ? 0.0 : 1.0 / RDGE.globals.width, invHeight = (RDGE.globals.height == 0.0) ? 0.0 : 1.0 / RDGE.globals.height;
- quad.renderObj.addUniform("u_inv_viewport_width", invWidth, RDGE.UNIFORMTYPE.FLOAT);
- quad.renderObj.addUniform("u_inv_viewport_height", invHeight, RDGE.UNIFORMTYPE.FLOAT);
-
- quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
- quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
-};
-
-RDGE.renderInitProcDepthMap = function (renderObj) {
- renderObj.shader = g_depthShader.shaderHandle; //RDGE.createShader(gl, depthMapVShader, depthMapFShader, [ "vert", "normal", "texcoord"]);
-
- gl.useProgram(renderObj.shader);
-
- renderObj.addUniform("u_mvpLightMatrix", g_mainLight.mvpMatrix, RDGE.UNIFORMTYPE.MATRIX4);
- //renderObj.addUniform("u_mvpLightMatrixWTF", g_mainLight.mvpMatrix, RDGE.UNIFORMTYPE.MATRIX4);
- // var uni = gl.getUniformLocation(renderObj.shader, "u_mvpLightMatrixWTF");
- // renderObj.addUniform("u_WTF1", g_lightMat[0], RDGE.UNIFORMTYPE.FLOAT4);
- // renderObj.addUniform("u_WTF2", g_lightMat[1], RDGE.UNIFORMTYPE.FLOAT4);
- // renderObj.addUniform("u_WTF3", g_lightMat[2], RDGE.UNIFORMTYPE.FLOAT4);
- // renderObj.addUniform("u_WTF4", g_lightMat[3], RDGE.UNIFORMTYPE.FLOAT4);
- //
- // since the uniform data references should not change we can just bind one time
- renderObj.bindUniforms();
-
- gl.useProgram(null);
-};
-
-RDGE.renderInitShadowReceiver = function (primSet, vertexData) {
- // setup passes
- primSet.shadowTarget = g_texMan.loadRenderTarget("shadowTarget", 256, 256);
- primSet.shadowTargetFinal = g_texMan.loadRenderTarget("shadowTargetFinal", 256, 256);
- primSet.screenQuad = new RDGE.ScreenQuad(primSet.shadowTargetFinal);
- primSet.screenQuad.initialize(RDGE.renderInitRadialBlur);
-
- // set the target as the shadow to get projcetd
- primSet.parentMesh.shadowToProject = primSet.shadowTarget;
-
- //mainSceneQuad = new RDGE.ScreenQuad(primSet.shadowTarget);
- //mainSceneQuad.initialize(renderInitScreenQuad);
-
- var material = primSet.material;
-
- //push envMap tex
- material.tex.env.push(arrayPeek(material.shader).envMap);
- material.tex.envDiff.push(arrayPeek(material.shader).envDiff);
-
- gl.useProgram(arrayPeek(material.shader).shaderHandle);
-
- arrayPeek(material.renderObj).addTexture("shadowMap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addUniform("u_mvMatrix", gl.mvMatrix, RDGE.UNIFORMTYPE.MATRIX4);
-
- arrayPeek(material.renderObj).addUniform("u_projMatrix", gl.perspectiveMatrix, RDGE.UNIFORMTYPE.MATRIX4);
-
- arrayPeek(material.renderObj).addUniform("u_shadowBiasMatrix", g_mainLight.shadowMatrix, RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_vShadowLight", g_mainLight.view, RDGE.UNIFORMTYPE.MATRIX4);
-
-
- // debug---
- vertexData.vertexObject.name = "vertexObject";
- vertexData.normalObject.name = "normalObject";
- vertexData.texCoordObject.name = "texCoordObject";
- vertexData.indexObject.name = "indexObject";
- //----------
-
- arrayPeek(material.renderObj).addBuffers(vertexData.vertexObject, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
- arrayPeek(material.renderObj).addBuffers(vertexData.normalObject, gl.ARRAY_BUFFER, 3, 1, gl.FLOAT);
- arrayPeek(material.renderObj).addBuffers(vertexData.texCoordObject, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
- arrayPeek(material.renderObj).addBuffers(vertexData.indexObject, gl.ELEMENT_ARRAY_BUFFER);
-
- gl.useProgram(null);
-
- //RDGE.renderInitShadowProjection(primSet, vertexData);
-};
-
-
-RDGE.renderInitShadowProjection = function (primSet, vertexData) {
- var material = primSet.material;
-
- //push envMap tex
- //material.tex.env.push(arrayPeek(material.shader).envMap);
- //material.tex.envDiff.push(arrayPeek(material.shader).envDiff);
-
- gl.useProgram(arrayPeek(material.shader).shaderHandle);
-
- arrayPeek(material.renderObj).addTexture("shadowMap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
- arrayPeek(material.renderObj).addUniform("u_mvMatrix", gl.mvMatrix, RDGE.UNIFORMTYPE.MATRIX4);
-
- arrayPeek(material.renderObj).addUniform("u_projMatrix", gl.perspectiveMatrix, RDGE.UNIFORMTYPE.MATRIX4);
-
- arrayPeek(material.renderObj).addUniform("u_shadowBiasMatrix", g_mainLight.shadowMatrix, RDGE.UNIFORMTYPE.MATRIX4);
- arrayPeek(material.renderObj).addUniform("u_vShadowLight", g_mainLight.view, RDGE.UNIFORMTYPE.MATRIX4);
-
-
- // debug---
- vertexData.vertexObject.name = "vertexObject";
- vertexData.normalObject.name = "normalObject";
- vertexData.texCoordObject.name = "texCoordObject";
- vertexData.indexObject.name = "indexObject";
- //----------
-
- arrayPeek(material.renderObj).addBuffers(vertexData.vertexObject, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
- arrayPeek(material.renderObj).addBuffers(vertexData.normalObject, gl.ARRAY_BUFFER, 3, 1, gl.FLOAT);
- arrayPeek(material.renderObj).addBuffers(vertexData.texCoordObject, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
- arrayPeek(material.renderObj).addBuffers(vertexData.indexObject, gl.ELEMENT_ARRAY_BUFFER);
-
-
- gl.useProgram(null);
-};
-
-RDGE.renderInitRadialBlur = function(quad, shader) {
- if (shader == undefined) {
- quad.shader = RDGE.createShader(gl, 'radialBlur_vshader', 'radialBlur_fshader', ["vert", "texcoord"]);
- }
- else {
- quad.shader = shader;
- }
-
- quad.renderObj = new RDGE.RenderObject(quad.shader);
-
- quadBuf = getScreenAlignedQuad();
-
- quad.vertBuffer = quadBuf.vertexObject;
- quad.uvBuffer = quadBuf.texCoordObject;
-
-
- quad.renderObj.addTexture("basemap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- quad.renderObj.addUniform("u_inv_viewport_width", 1.0 / RDGE.globals.width, RDGE.UNIFORMTYPE.FLOAT);
- quad.renderObj.addUniform("u_inv_viewport_height", 1.0 / RDGE.globals.height, RDGE.UNIFORMTYPE.FLOAT);
- quad.renderObj.addUniform("u_sampRadius", 5.0, RDGE.UNIFORMTYPE.FLOAT);
- quad.renderObj.addUniform("u_numSamples", 16, RDGE.UNIFORMTYPE.INT);
- quad.renderObj.addUniform("u_mapSize", 256.0, RDGE.UNIFORMTYPE.FLOAT);
-
- quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
- quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
-};
+/*
+Copyright (c) 2012, Motorola Mobility, Inc
+All Rights Reserved.
+BSD License.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ - Neither the name of Motorola Mobility nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// RDGE namespaces
+var RDGE = RDGE || {};
+
+RDGE.renderInitProcDefault = function (primSet, vertexData) {
+ var material = primSet.material;
+
+ //push envMap tex
+ material.tex.env.push(arrayPeek(material.shader).envMap);
+ material.tex.envDiff.push(arrayPeek(material.shader).envDiff);
+
+ gl.useProgram(arrayPeek(material.shader).shaderHandle);
+
+ arrayPeek(material.renderObj).addTexture("layerMap1", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("layerMap2", 1, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("colorMeMap1", 2, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("colorMeMap2", 3, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("envMap", 4, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("envDiff", 5, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ arrayPeek(material.renderObj).addTexture("normalMap1", 15, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("normalMap2", 6, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ arrayPeek(material.renderObj).addTexture("stickerMap0", 7, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("stickerMap1", 8, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("stickerMap2", 9, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("stickerMap3", 10, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("stickerMap4", 11, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("stickerMap5", 12, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("stickerMap6", 13, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addTexture("stickerMap7", 14, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ arrayPeek(material.renderObj).addUniform("u_normalMatrix", gl.normalMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_mvMatrix", gl.mvMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_invMvMatrix", gl.invMvMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+
+ arrayPeek(material.renderObj).addUniform("u_stickerMatrix0", primSet.parentMesh.stickers[0], RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_stickerMatrix1", primSet.parentMesh.stickers[1], RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_stickerMatrix2", primSet.parentMesh.stickers[2], RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_stickerMatrix3", primSet.parentMesh.stickers[3], RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_stickerMatrix4", primSet.parentMesh.stickers[4], RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_stickerMatrix5", primSet.parentMesh.stickers[5], RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_stickerMatrix6", primSet.parentMesh.stickers[6], RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_stickerMatrix7", primSet.parentMesh.stickers[7], RDGE.UNIFORMTYPE.MATRIX4);
+
+ arrayPeek(material.renderObj).addUniform("u_stickerPos0", primSet.parentMesh.stickersPos[0], RDGE.UNIFORMTYPE.FLOAT3);
+ arrayPeek(material.renderObj).addUniform("u_stickerPos1", primSet.parentMesh.stickersPos[1], RDGE.UNIFORMTYPE.FLOAT3);
+ arrayPeek(material.renderObj).addUniform("u_stickerPos2", primSet.parentMesh.stickersPos[2], RDGE.UNIFORMTYPE.FLOAT3);
+ arrayPeek(material.renderObj).addUniform("u_stickerPos3", primSet.parentMesh.stickersPos[3], RDGE.UNIFORMTYPE.FLOAT3);
+ arrayPeek(material.renderObj).addUniform("u_stickerPos4", primSet.parentMesh.stickersPos[4], RDGE.UNIFORMTYPE.FLOAT3);
+ arrayPeek(material.renderObj).addUniform("u_stickerPos5", primSet.parentMesh.stickersPos[5], RDGE.UNIFORMTYPE.FLOAT3);
+ arrayPeek(material.renderObj).addUniform("u_stickerPos6", primSet.parentMesh.stickersPos[6], RDGE.UNIFORMTYPE.FLOAT3);
+ arrayPeek(material.renderObj).addUniform("u_stickerPos7", primSet.parentMesh.stickersPos[7], RDGE.UNIFORMTYPE.FLOAT3);
+
+ arrayPeek(material.renderObj).addUniform("u_projMatrix", gl.perspectiveMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+
+ arrayPeek(material.renderObj).addUniform("u_fillColor1", material.fillColor[0], RDGE.UNIFORMTYPE.FLOAT4);
+ arrayPeek(material.renderObj).addUniform("u_fillColor2", material.fillColor[1], RDGE.UNIFORMTYPE.FLOAT4);
+ arrayPeek(material.renderObj).addUniform("u_skinColor", material.fillColor[2], RDGE.UNIFORMTYPE.FLOAT4);
+
+ // debug---
+ vertexData.vertexObject.name = "vertexObject";
+ vertexData.normalObject.name = "normalObject";
+ vertexData.texCoordObject.name = "texCoordObject";
+ vertexData.indexObject.name = "indexObject";
+ //----------
+
+ arrayPeek(material.renderObj).addBuffers(vertexData.vertexObject, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
+ arrayPeek(material.renderObj).addBuffers(vertexData.normalObject, gl.ARRAY_BUFFER, 3, 1, gl.FLOAT);
+ arrayPeek(material.renderObj).addBuffers(vertexData.texCoordObject, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
+ arrayPeek(material.renderObj).addBuffers(vertexData.indexObject, gl.ELEMENT_ARRAY_BUFFER);
+
+ gl.useProgram(null);
+ // gl.console.log("Mesh Init done!");
+};
+
+RDGE.renderInitScreenQuad = function (quad, shader) {
+ if (shader == undefined) {
+ quad.shader = RDGE.createShader(gl, 'screenQuad_vShader', 'screenQuad_fShader', ["vert", "texcoord"]);
+ }
+ else {
+ quad.shader = shader;
+ }
+
+ quad.renderObj = new RDGE.RenderObject(quad.shader);
+
+ quadBuf = getScreenAlignedQuad();
+
+ quad.vertBuffer = quadBuf.vertexObject;
+ quad.uvBuffer = quadBuf.texCoordObject;
+
+
+ quad.renderObj.addTexture("basemap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ var invWidth = (RDGE.globals.width == 0.0) ? 0.0 : 1.0 / RDGE.globals.width, invHeight = (RDGE.globals.height == 0.0) ? 0.0 : 1.0 / RDGE.globals.height;
+ quad.renderObj.addUniform("u_inv_viewport_width", invWidth, RDGE.UNIFORMTYPE.FLOAT);
+ quad.renderObj.addUniform("u_inv_viewport_height", invHeight, RDGE.UNIFORMTYPE.FLOAT);
+
+ quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
+ quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
+};
+
+RDGE.renderInitProcDepthMap = function (renderObj) {
+ renderObj.shader = g_depthShader.shaderHandle; //RDGE.createShader(gl, depthMapVShader, depthMapFShader, [ "vert", "normal", "texcoord"]);
+
+ gl.useProgram(renderObj.shader);
+
+ renderObj.addUniform("u_mvpLightMatrix", g_mainLight.mvpMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+ //renderObj.addUniform("u_mvpLightMatrixWTF", g_mainLight.mvpMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+ // var uni = gl.getUniformLocation(renderObj.shader, "u_mvpLightMatrixWTF");
+ // renderObj.addUniform("u_WTF1", g_lightMat[0], RDGE.UNIFORMTYPE.FLOAT4);
+ // renderObj.addUniform("u_WTF2", g_lightMat[1], RDGE.UNIFORMTYPE.FLOAT4);
+ // renderObj.addUniform("u_WTF3", g_lightMat[2], RDGE.UNIFORMTYPE.FLOAT4);
+ // renderObj.addUniform("u_WTF4", g_lightMat[3], RDGE.UNIFORMTYPE.FLOAT4);
+ //
+ // since the uniform data references should not change we can just bind one time
+ renderObj.bindUniforms();
+
+ gl.useProgram(null);
+};
+
+RDGE.renderInitShadowReceiver = function (primSet, vertexData) {
+ // setup passes
+ primSet.shadowTarget = g_texMan.loadRenderTarget("shadowTarget", 256, 256);
+ primSet.shadowTargetFinal = g_texMan.loadRenderTarget("shadowTargetFinal", 256, 256);
+ primSet.screenQuad = new RDGE.ScreenQuad(primSet.shadowTargetFinal);
+ primSet.screenQuad.initialize(RDGE.renderInitRadialBlur);
+
+ // set the target as the shadow to get projcetd
+ primSet.parentMesh.shadowToProject = primSet.shadowTarget;
+
+ //mainSceneQuad = new RDGE.ScreenQuad(primSet.shadowTarget);
+ //mainSceneQuad.initialize(renderInitScreenQuad);
+
+ var material = primSet.material;
+
+ //push envMap tex
+ material.tex.env.push(arrayPeek(material.shader).envMap);
+ material.tex.envDiff.push(arrayPeek(material.shader).envDiff);
+
+ gl.useProgram(arrayPeek(material.shader).shaderHandle);
+
+ arrayPeek(material.renderObj).addTexture("shadowMap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addUniform("u_mvMatrix", gl.mvMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+
+ arrayPeek(material.renderObj).addUniform("u_projMatrix", gl.perspectiveMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+
+ arrayPeek(material.renderObj).addUniform("u_shadowBiasMatrix", g_mainLight.shadowMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_vShadowLight", g_mainLight.view, RDGE.UNIFORMTYPE.MATRIX4);
+
+
+ // debug---
+ vertexData.vertexObject.name = "vertexObject";
+ vertexData.normalObject.name = "normalObject";
+ vertexData.texCoordObject.name = "texCoordObject";
+ vertexData.indexObject.name = "indexObject";
+ //----------
+
+ arrayPeek(material.renderObj).addBuffers(vertexData.vertexObject, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
+ arrayPeek(material.renderObj).addBuffers(vertexData.normalObject, gl.ARRAY_BUFFER, 3, 1, gl.FLOAT);
+ arrayPeek(material.renderObj).addBuffers(vertexData.texCoordObject, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
+ arrayPeek(material.renderObj).addBuffers(vertexData.indexObject, gl.ELEMENT_ARRAY_BUFFER);
+
+ gl.useProgram(null);
+
+ //RDGE.renderInitShadowProjection(primSet, vertexData);
+};
+
+
+RDGE.renderInitShadowProjection = function (primSet, vertexData) {
+ var material = primSet.material;
+
+ //push envMap tex
+ //material.tex.env.push(arrayPeek(material.shader).envMap);
+ //material.tex.envDiff.push(arrayPeek(material.shader).envDiff);
+
+ gl.useProgram(arrayPeek(material.shader).shaderHandle);
+
+ arrayPeek(material.renderObj).addTexture("shadowMap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+ arrayPeek(material.renderObj).addUniform("u_mvMatrix", gl.mvMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+
+ arrayPeek(material.renderObj).addUniform("u_projMatrix", gl.perspectiveMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+
+ arrayPeek(material.renderObj).addUniform("u_shadowBiasMatrix", g_mainLight.shadowMatrix, RDGE.UNIFORMTYPE.MATRIX4);
+ arrayPeek(material.renderObj).addUniform("u_vShadowLight", g_mainLight.view, RDGE.UNIFORMTYPE.MATRIX4);
+
+
+ // debug---
+ vertexData.vertexObject.name = "vertexObject";
+ vertexData.normalObject.name = "normalObject";
+ vertexData.texCoordObject.name = "texCoordObject";
+ vertexData.indexObject.name = "indexObject";
+ //----------
+
+ arrayPeek(material.renderObj).addBuffers(vertexData.vertexObject, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
+ arrayPeek(material.renderObj).addBuffers(vertexData.normalObject, gl.ARRAY_BUFFER, 3, 1, gl.FLOAT);
+ arrayPeek(material.renderObj).addBuffers(vertexData.texCoordObject, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
+ arrayPeek(material.renderObj).addBuffers(vertexData.indexObject, gl.ELEMENT_ARRAY_BUFFER);
+
+
+ gl.useProgram(null);
+};
+
+RDGE.renderInitRadialBlur = function(quad, shader) {
+ if (shader == undefined) {
+ quad.shader = RDGE.createShader(gl, 'radialBlur_vshader', 'radialBlur_fshader', ["vert", "texcoord"]);
+ }
+ else {
+ quad.shader = shader;
+ }
+
+ quad.renderObj = new RDGE.RenderObject(quad.shader);
+
+ quadBuf = getScreenAlignedQuad();
+
+ quad.vertBuffer = quadBuf.vertexObject;
+ quad.uvBuffer = quadBuf.texCoordObject;
+
+
+ quad.renderObj.addTexture("basemap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ quad.renderObj.addUniform("u_inv_viewport_width", 1.0 / RDGE.globals.width, RDGE.UNIFORMTYPE.FLOAT);
+ quad.renderObj.addUniform("u_inv_viewport_height", 1.0 / RDGE.globals.height, RDGE.UNIFORMTYPE.FLOAT);
+ quad.renderObj.addUniform("u_sampRadius", 5.0, RDGE.UNIFORMTYPE.FLOAT);
+ quad.renderObj.addUniform("u_numSamples", 16, RDGE.UNIFORMTYPE.INT);
+ quad.renderObj.addUniform("u_mapSize", 256.0, RDGE.UNIFORMTYPE.FLOAT);
+
+ quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
+ quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
+};
diff --git a/js/helper-classes/RDGE/src/core/script/RenderProcs.js b/js/helper-classes/RDGE/src/core/script/RenderProcs.js
index 1583ea14..1f0d3b3c 100755
--- a/js/helper-classes/RDGE/src/core/script/RenderProcs.js
+++ b/js/helper-classes/RDGE/src/core/script/RenderProcs.js
@@ -1,511 +1,511 @@
-/*
-Copyright (c) 2012, Motorola Mobility, Inc
-All Rights Reserved.
-BSD License.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- - Neither the name of Motorola Mobility nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
- */
-
-// RDGE namespaces
-var RDGE = RDGE || {};
-
-/**
-* supported uniform types
-*/
-RDGE.UNIFORMTYPE = function () {
- this.INT = 0x3F0;
- this.FLOAT = 0x3E8;
- this.FLOAT2 = 0x3E9;
- this.FLOAT3 = 0x3EA;
- this.FLOAT4 = 0x3EB;
- this.MATRIX3 = 0x3EC;
- this.MATRIX4 = 0x3ED;
- this.TEXTURE2D = 0x3EE;
- this.TEXTURECUBE = 0x3EF;
-};
-
-/**
-* RDGE.RenderObject - contains references to all the data need to render, including vertex buffers, uniform handles, and matrices
-* @param shaderHandle
-*/
-RDGE.RenderObject = function (shaderHandle) {
- this.shader = shaderHandle;
- this.world = null;
- this.bindings = new RDGE.ShaderData();
- this.initRenderProc = null;
- this.renderProc = null;
- this.postRenderProc = null;
-};
-
-/**
-* Adds a uniform to the render object to bound during render
-* @param name - name of the uniform
-* @param value - reference to value that will get bound (will be referenced from now on, don't delete the ref)
-* @param type - type of uniform, use RDGE.UNIFORMTYPE
-*/
-RDGE.RenderObject.prototype.addUniform = function (name, value, type) {
- var uniform = RDGE.globals.gl.getUniformLocation(this.shader, name);
- if (uniform) {
- uniform.debugName = name;
- this.bindings.uniforms.push(new RDGE.UniformPair(uniform, value, type));
- }
- /*
- else
- {
- gl.console.log("ERROR: uniform - " + name + " not found!");
- }
- */
-};
-
-/**
-* Adds a uniform to the render object to bound during render
-* @param name - name of the uniform
-* @param value - reference to value that will get bound (will be referenced from now on, don't delete the ref)
-* @param type - type of uniform, use RDGE.UNIFORMTYPE
-*/
-RDGE.RenderObject.prototype.addUniformArray = function (name, value, type, size) {
- var uniform = RDGE.globals.gl.getUniformLocation(this.shader, name);
- if (uniform) {
- for (var index = 0; index < size; index++) {
- uniform.debugName = name + index;
- this.bindings.uniforms.push(new RDGE.UniformPair(uniform, value[index], type));
- uniform += value[index].length;
- value++;
- }
- }
- /*
- else
- {
- gl.console.log("ERROR: uniform - " + name + " not found!");
- }*/
-};
-
-/**
-* Add texture to uniform
-* @param name - handle to the texture
-* @param unit - texture slot to use
-* @param type - RDGE.UNIFORMTYPE.TEXTURE2D or TEXTURE2D.TEXTURECUBE
-*/
-RDGE.RenderObject.prototype.addTexture = function (name, unit, type) {
- var uniform = RDGE.globals.gl.getUniformLocation(this.shader, name);
- if (uniform) {
- this.bindings.textures.push(new RDGE.TexUniform(uniform, unit, type));
- }
- /*
- else
- {
- gl.console.log("ERROR: texture uniform - " + name + " not found!");
- }
- */
-};
-
-/**
-* Adds a vertex buffer to the render object
-* @param buffer - buffer to use
-* @param glBufferType - type of buffer i.e. gl.ARRAY_BUFFER
-* @param attribSize - if using attrib the size of an element (3 for vec3)
-* @param attribIndex - the index slot the attrib goes in
-* @param glAttribType - type of the attrib i.e. gl.FLOAT
-*/
-RDGE.RenderObject.prototype.addBuffers = function (buffer, glBufferType, attribSize, attribIndex, glAttribType) {
- //gl.useProgram(this.shader);
- if (attribSize == undefined || attribIndex == undefined || glAttribType == undefined ||
- attribSize == null || attribIndex == null || glAttribType == null) {
- this.bindings.buffers.push(new RDGE.BufferAttrib(buffer, glBufferType, null, null, null));
- }
- else {
- this.bindings.buffers.push(new RDGE.BufferAttrib(buffer, glBufferType, attribSize, attribIndex, glAttribType));
- }
- //gl.useProgram(null);
-};
-
-/**
-* bind the matrices, vertices and floats to shader uniforms
-*/
-RDGE.RenderObject.prototype.bindUniforms = function () {
- for (var uniIndex = 0; uniIndex < this.bindings.uniforms.length; uniIndex++) {
- var bind = this.bindings.uniforms[uniIndex];
- switch (bind.type) {
- case RDGE.UNIFORMTYPE.INT:
- RDGE.globals.gl.uniform1i(bind.uniform, bind.value);
- break;
- case RDGE.UNIFORMTYPE.FLOAT:
- RDGE.globals.gl.uniform1f(bind.uniform, bind.value);
- break;
- case RDGE.UNIFORMTYPE.FLOAT2:
- RDGE.globals.gl.uniform2fv(bind.uniform, bind.value);
- break;
- case RDGE.UNIFORMTYPE.FLOAT3:
- RDGE.globals.gl.uniform3fv(bind.uniform, bind.value);
- break;
- case RDGE.UNIFORMTYPE.FLOAT4:
- RDGE.globals.gl.uniform4fv(bind.uniform, bind.value);
- break;
- case RDGE.UNIFORMTYPE.MATRIX3:
- RDGE.globals.gl.uniformMatrix3fv(bind.uniform, false, bind.value);
- break;
- case RDGE.UNIFORMTYPE.MATRIX4:
- RDGE.globals.gl.uniformMatrix4fv(bind.uniform, false, bind.value);
- break;
- default:
- // gl.console.log("RDGE.RenderObject: trying to bind unknown texture type");
- break;
- }
- }
-};
-
-/**
-* binds the texture uniform to texture slots
-*/
-RDGE.RenderObject.prototype.bindTextures = function () {
- for (var uniIndex = 0; uniIndex < this.bindings.textures.length; uniIndex++) {
- var bind = this.bindings.textures[uniIndex];
- var error = 0;
- switch (bind.type) {
- case RDGE.UNIFORMTYPE.TEXTURE2D:
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE0 + bind.unit);
- RDGE.globals.gl.uniform1i(bind.uniform, bind.unit);
- break;
- case RDGE.UNIFORMTYPE.TEXTURECUBE:
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE0 + bind.unit);
- RDGE.globals.gl.uniform1i(bind.uniform, bind.unit);
- break;
- default:
- // gl.console.log("RDGE.RenderObject: trying to bind unknown texture type");
- break;
- }
- }
-};
-
-/**
-* Binds all buffers and enables any vertexAttribs
-*/
-RDGE.RenderObject.prototype.bindBuffers = function () {
- for (var bufIndex = 0; bufIndex < this.bindings.buffers.length; bufIndex++) {
- var bind = this.bindings.buffers[bufIndex];
- RDGE.globals.gl.bindBuffer(bind.glBufferType, bind.buffer);
-
- if (bind.glAttribType != null) {
- // enable the attribute and point buffer to it
- RDGE.globals.gl.enableVertexAttribArray(bind.attribIndex);
-
- RDGE.globals.gl.vertexAttribPointer(bind.attribIndex, bind.attribSize, bind.glAttribType, false, 0, 0);
- }
- }
-};
-
-RDGE.RenderObject.prototype.unBindBuffers = function () {
- for (var bufIndex = 0; bufIndex < this.bindings.buffers.length; bufIndex++) {
- var bind = this.bindings.buffers[bufIndex];
-
- if (bind.glAttribType != null) {
- // enable the attribute and point buffer to it
- RDGE.globals.gl.disableVertexAttribArray(bind.attribIndex);
- }
-
- RDGE.globals.gl.bindBuffer(bind.glBufferType, null);
- }
-};
-
-RDGE.RenderObject.prototype.initialize = function (initRenderProc) {
- initRenderProc(this);
-};
-
-RDGE.RenderObject.prototype.clear = function () {
- this.world = RDGE.mat4.identity();
- this.bindings = new RDGE.ShaderData();
-};
-
-/***
-* Shader data proto
-*/
-RDGE.ShaderData = function () {
- this.uniforms = [];
- this.textures = [];
- this.buffers = [];
-};
-
-/***
-* Structure to contain reference data for binding to during render
-*/
-RDGE.UniformPair = function (uniform, value, type) {
- this.uniform = uniform;
- this.value = value;
- this.type = type;
-};
-
-RDGE.TexUniform = function (uniform, unit, type) {
- this.uniform = uniform;
- this.unit = unit;
- this.type = type;
-};
-
-RDGE.BufferAttrib = function (buffer, glBufferType, attribSize, attribIndex, glAttribType) {
- // buffer data
- this.buffer = buffer;
- this.glBufferType = glBufferType;
-
- // attribute data (can be null)
- this.attribSize = attribSize;
- this.glAttribType = glAttribType;
- this.attribIndex = attribIndex;
-};
-
-RDGE.setActiveTexture = function (id, texture) {
- RDGE.globals.gl.activeTexture(id);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, texture);
-};
-
-RDGE.renderProcDefault = function (primSet) {
- //gl.disable(gl.DEPTH_TEST);
- //gl.disable(gl.CULL_FACE);
- var activeCam = RDGE.globals.cameraManager.getActiveCamera();
- RDGE.globals.gl.mvMatrix = activeCam.view;
- RDGE.globals.gl.mvMatrix = RDGE.mat4.mul(RDGE.globals.gl.mvMatrix, primSet.parentMesh.world);
- RDGE.globals.gl.invMvMatrix = RDGE.mat4.inverse(RDGE.globals.gl.mvMatrix);
- RDGE.globals.gl.normalMatrix = RDGE.mat4.transpose(RDGE.globals.gl.invMvMatrix);
-
- // update shadow light MV matrix
- RDGE.globals.gl.useProgram(arrayPeek(primSet.material.shader).shaderHandle);
- // Bind the texture
-
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE0);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, arrayPeek(primSet.material.tex.set1).diff);
-
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE1);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, arrayPeek(primSet.material.tex.set2).diff);
-
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE2);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, arrayPeek(primSet.material.tex.set1).spec);
-
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE3);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, arrayPeek(primSet.material.tex.set2).spec);
-
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE4);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, arrayPeek(primSet.material.tex.env));
-
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE5);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, arrayPeek(primSet.material.tex.envDiff));
-
- // stickers
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE7, RDGE.globals.cam.stickerTexture[0]);
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE8, RDGE.globals.cam.stickerTexture[1]);
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE9, RDGE.globals.cam.stickerTexture[2]);
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE10, RDGE.globals.cam.stickerTexture[3]);
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE11, RDGE.globals.cam.stickerTexture[4]);
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE12, RDGE.globals.cam.stickerTexture[5]);
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE13, RDGE.globals.cam.stickerTexture[6]);
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE14, RDGE.globals.cam.stickerTexture[7]);
-
- // copy current cams matrix
- for (var i = 0; i < 8; i++) {
- primSet.parentMesh.stickers[i].load(RDGE.globals.cam.stickers[i]);
- primSet.parentMesh.stickersPos[i].setvec(RDGE.globals.cam.stickersPos[i]);
- }
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE15, arrayPeek(primSet.material.tex.set1).norm);
- RDGE.setActiveTexture(RDGE.globals.gl.TEXTURE6, arrayPeek(primSet.material.tex.set2).norm);
-
- //bind buffers and attribs
- arrayPeek(primSet.material.renderObj).bindBuffers();
-
- // bind shader uniforms
- arrayPeek(primSet.material.renderObj).bindTextures();
-
- arrayPeek(primSet.material.renderObj).bindUniforms();
-
- RDGE.globals.gl.drawElements(RDGE.globals.gl.TRIANGLES, primSet.size, RDGE.globals.gl.UNSIGNED_SHORT, primSet.indexInBuffer * 2);
-};
-
-RDGE.renderProcLines = function (renderObj, r, g, b, a) {
- RDGE.globals.gl.useProgram(renderObj.shader);
-
- renderObj.lineColor[0] = r;
- renderObj.lineColor[1] = g;
- renderObj.lineColor[2] = b;
- renderObj.lineColor[3] = a;
-
- //bind buffers and attribs
- renderObj.bindBuffers();
-
- // bind shader uniforms
- renderObj.bindUniforms();
-
- // draw the AABBs
- RDGE.globals.gl.drawArrays(RDGE.globals.gl.LINES, 0, renderObj.numPoints / 3);
-
- RDGE.globals.gl.useProgram(null);
-};
-
-RDGE.renderProcScreenQuad = function (quad) {
- RDGE.globals.gl.disable(RDGE.globals.gl.DEPTH_TEST);
- RDGE.globals.gl.useProgram(quad.shader);
-
- //bind buffers and attribs
- quad.renderObj.bindBuffers();
-
- // bind shader uniforms
- quad.renderObj.bindTextures();
- quad.renderObj.bindUniforms();
-
- // render
- var offset = 0;
- // Bind the texture
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, quad.texture);
- RDGE.globals.gl.drawArrays(RDGE.globals.gl.TRIANGLES, 0, 6);
-
- RDGE.globals.gl.useProgram(null);
- RDGE.globals.gl.enable(RDGE.globals.gl.DEPTH_TEST);
-};
-
-// post render proc
-RDGE.postRenderProcDefault = function (primSet) {
- RDGE.globals.gl.useProgram(arrayPeek(primSet.material.renderObj).shader);
-
- //bind