summaryrefslogtreecommitdiffstats
path: root/o3d/samples/hud-2d-overlay.html
diff options
context:
space:
mode:
authorgman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-01 04:21:40 +0000
committergman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-01 04:21:40 +0000
commit70c8e97a69ef8806b1812b2cd0ebe831f3792cb6 (patch)
tree4c5b5e5b71ce99f91910b3fd569443f0f07a4e72 /o3d/samples/hud-2d-overlay.html
parent13a8961bf84b7132e2ae588ea644bf7b8012fe75 (diff)
downloadchromium_src-70c8e97a69ef8806b1812b2cd0ebe831f3792cb6.zip
chromium_src-70c8e97a69ef8806b1812b2cd0ebe831f3792cb6.tar.gz
chromium_src-70c8e97a69ef8806b1812b2cd0ebe831f3792cb6.tar.bz2
Update samples to use more utility functions where
appropriate. A few places used pseudoRandom. That is in math.js now so they use that. Other places there is now o3djs.material.createBasicMaterial and o3djs.material.createMaterialFromFile that save 10-20 lines per sample. This CL will require new reference images. There are 2 other things I'd like to consider. #1) Changing every sample that uses shaders/texture-only.shader to use o3djs.material.createConstantMaterial or some variation. The problem with o3djs.material.createConstantMaterial is it requires you pass it a texture if you want a constant textured material. All the samples create the material first, then later add the texture. So, I could add a new o3djs.material.createTextureOnlyMaterial. At the same time that would mean changing those samples from setting stuff on 'texSampler0' to 'emissive' #2) I'd like to change the shader builder so it stops adding "Sampler" to textured materials. As it is if the material uses a color it makes the param called "diffuse" but if it's a texture it makes it "diffuseSampler". That sucks because it means the code has to do crap like var param = material.getParam('diffuse'); if (param) { // it's a color } else { param = material.getParam('diffuseSampler'); if (param) { // it's a texture. } } If we stopped that silliness we could just do var param = material.getParam('diffuse'); if (param) { if (param.isA('o3d.ParamTexture')) { // it's textured. } else { // it's not. } } Unfortunately to fix this requires changing the o3dConverter as well since it uses those conventions. Should we do this? Review URL: http://codereview.chromium.org/182024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25015 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d/samples/hud-2d-overlay.html')
-rw-r--r--o3d/samples/hud-2d-overlay.html35
1 files changed, 9 insertions, 26 deletions
diff --git a/o3d/samples/hud-2d-overlay.html b/o3d/samples/hud-2d-overlay.html
index 9c95126..e22eb7f 100644
--- a/o3d/samples/hud-2d-overlay.html
+++ b/o3d/samples/hud-2d-overlay.html
@@ -51,7 +51,7 @@ o3djs.require('o3djs.util');
o3djs.require('o3djs.math');
o3djs.require('o3djs.rendergraph');
o3djs.require('o3djs.primitives');
-o3djs.require('o3djs.effect');
+o3djs.require('o3djs.material');
o3djs.require('o3djs.loader');
// Events
@@ -106,16 +106,6 @@ var g_selectedIndex = 0;
var g_randSeed = 0;
/**
- * Returns a deterministic pseudorandom number bewteen 0 and 1
- * @return {number} a random number between 0 and 1
- */
-function pseudoRandom() {
- var range = Math.pow(2, 32);
-
- return (g_randSeed = (134775813 * g_randSeed + 1) % range) / range;
-}
-
-/**
* Creates the client area.
*/
function init() {
@@ -191,17 +181,10 @@ function initStep2(clientElements) {
5000); // Far plane.
for (var ii = 0; ii < g_materialUrls.length; ++ii) {
- var effect = g_pack.createObject('Effect');
- o3djs.effect.loadEffect(effect, g_materialUrls[ii]);
-
- // Create a Material for the effect.
- var material = g_pack.createObject('Material');
-
- // Apply our effect to this material.
- material.effect = effect;
-
- // Create the params the effect needs on the material.
- effect.createUniformParameters(material);
+ var material = o3djs.material.createMaterialFromFile(
+ g_pack,
+ g_materialUrls[ii],
+ g_viewInfo.performanceDrawList);
// Set the default params. We'll override these with params on transforms.
material.getParam('colorMult').value = [1, 1, 1, 1];
@@ -349,11 +332,11 @@ function createBuilding(x, z) {
transform.addShape(g_cubeShape);
transform.parent = g_3dRoot;
transform.translate(x, 0, z);
- transform.scale(1, pseudoRandom() * 3 + 1, 1);
+ transform.scale(1, g_math.pseudoRandom() * 3 + 1, 1);
transform.createParam('colorMult', 'ParamFloat4').value = [
- pseudoRandom() * 0.6 + 0.4,
- pseudoRandom() * 0.6 + 0.4,
- pseudoRandom() * 0.6 + 0.4,
+ g_math.pseudoRandom() * 0.6 + 0.4,
+ g_math.pseudoRandom() * 0.6 + 0.4,
+ g_math.pseudoRandom() * 0.6 + 0.4,
1];
}