summaryrefslogtreecommitdiffstats
path: root/o3d/samples/o3djs/fps.js
diff options
context:
space:
mode:
Diffstat (limited to 'o3d/samples/o3djs/fps.js')
-rw-r--r--o3d/samples/o3djs/fps.js113
1 files changed, 112 insertions, 1 deletions
diff --git a/o3d/samples/o3djs/fps.js b/o3d/samples/o3djs/fps.js
index 7ca1919..39d80f4 100644
--- a/o3d/samples/o3djs/fps.js
+++ b/o3d/samples/o3djs/fps.js
@@ -68,7 +68,7 @@ o3djs.fps.PERF_BAR_COLORS = [
* The shader code used by the pref quads.
* @type {string}
*/
-o3djs.fps.CONST_COLOR_EFFECT =
+o3djs.fps.CONST_COLOR_EFFECT_CG =
'float4x4 worldViewProjection : WorldViewProjection;\n' +
'float4 color;\n' +
'struct a2v {\n' +
@@ -89,6 +89,112 @@ o3djs.fps.CONST_COLOR_EFFECT =
'// #o3d PixelShaderEntryPoint psMain\n' +
'// #o3d MatrixLoadOrder RowMajor\n';
+// Auto-generated by convert.py.
+o3djs.fps.CONST_COLOR_EFFECT_GLSL =
+ '// glslv profile log:\n' +
+ '// 19 lines, 0 errors.\n' +
+ '\n' +
+ '// glslf profile log:\n' +
+ '// 19 lines, 0 errors.\n' +
+ '\n' +
+ '// glslv output by Cg compiler\n' +
+ '// cgc version 2.0.0010, build date Dec 12 2007\n' +
+ '// command line args: -profile glslv\n' +
+ '//vendor NVIDIA Corporation\n' +
+ '//version 2.0.0.10\n' +
+ '//profile glslv\n' +
+ '//program vsMain\n' +
+ '//semantic worldViewProjection : WorldViewProjection\n' +
+ '//semantic color\n' +
+ '//var float4x4 worldViewProjection : WorldViewProjection : _ZZ2SworldViewProjection[0], 4 : -1 : 1\n' +
+ '//var float4 color : : : -1 : 0\n' +
+ '//var float4 IN.pos : $vin.POSITION : POSITION : 0 : 1\n' +
+ '//var float4 vsMain.pos : $vout.POSITION : POSITION : -1 : 1\n' +
+ '\n' +
+ 'attribute vec4 position;\n' +
+ 'vec4 _glPositionTemp;\n' +
+ 'uniform vec4 dx_clipping;\n' +
+ '\n' +
+ 'struct a2v {\n' +
+ ' vec4 pos;\n' +
+ '};\n' +
+ '\n' +
+ 'struct v2f {\n' +
+ ' vec4 pos;\n' +
+ '};\n' +
+ '\n' +
+ 'v2f _ZZ3Sret_0;\n' +
+ 'vec4 _ZZ3SrZh0003;\n' +
+ 'uniform mat4 worldviewprojection;\n' +
+ '\n' +
+ ' // main procedure, the original name was vsMain\n' +
+ 'void main()\n' +
+ '{\n' +
+ '\n' +
+ '\n' +
+ ' _ZZ3SrZh0003 = position.x*worldviewprojection[0];\n' +
+ ' _ZZ3SrZh0003 = _ZZ3SrZh0003 + position.y*worldviewprojection[1];\n' +
+ ' _ZZ3SrZh0003 = _ZZ3SrZh0003 + position.z*worldviewprojection[2];\n' +
+ ' _ZZ3SrZh0003 = _ZZ3SrZh0003 + position.w*worldviewprojection[3];\n' +
+ ' _ZZ3Sret_0.pos = _ZZ3SrZh0003;\n' +
+ ' _glPositionTemp = _ZZ3SrZh0003; gl_Position = vec4(_glPositionTemp.x + _glPositionTemp.w * dx_clipping.x, dx_clipping.w * (_glPositionTemp.y + _glPositionTemp.w * dx_clipping.y), _glPositionTemp.z * 2 - _glPositionTemp.w, _glPositionTemp.w);\n' +
+ ' return;\n' +
+ '} // main end\n' +
+ '\n' +
+ '\n' +
+ '// #o3d SplitMarker\n' +
+ '// #o3d MatrixLoadOrder RowMajor\n' +
+ '\n' +
+ '// glslf output by Cg compiler\n' +
+ '// cgc version 2.0.0010, build date Dec 12 2007\n' +
+ '// command line args: -profile glslf\n' +
+ '//vendor NVIDIA Corporation\n' +
+ '//version 2.0.0.10\n' +
+ '//profile glslf\n' +
+ '//program psMain\n' +
+ '//semantic worldViewProjection : WorldViewProjection\n' +
+ '//semantic color\n' +
+ '//var float4x4 worldViewProjection : WorldViewProjection : , 4 : -1 : 0\n' +
+ '//var float4 color : : _ZZ2Scolor : -1 : 1\n' +
+ '//var float4 psMain : $vout.COLOR : COLOR : -1 : 1\n' +
+ '\n' +
+ '\n' +
+ '\n' +
+ 'struct a2v {\n' +
+ ' int dummy;\n' +
+ '};\n' +
+ '\n' +
+ 'struct v2f {\n' +
+ ' int dummy;\n' +
+ '};\n' +
+ '\n' +
+ 'vec4 _ZZ3Sret_0;\n' +
+ 'uniform vec4 color;\n' +
+ '\n' +
+ ' // main procedure, the original name was psMain\n' +
+ 'void main()\n' +
+ '{\n' +
+ '\n' +
+ '\n' +
+ ' _ZZ3Sret_0 = color;\n' +
+ ' gl_FragColor = color;\n' +
+ ' return;\n' +
+ '} // main end\n';
+
+
+/**
+ * Sets the shader language used. Passing 'glsl' will cause all generated
+ * shader code to be in glsl. Passing anything else will result in the
+ * default o3d hlsl/cg based shader language.
+ * @param {string} language Shader language to use.
+ */
+o3djs.fps.setLanguage = function(language) {
+ o3djs.fps.CONST_COLOR_EFFECT = o3djs.fps.CONST_COLOR_EFFECT_CG;
+ if (language == 'glsl')
+ o3djs.fps.CONST_COLOR_EFFECT = o3djs.fps.CONST_COLOR_EFFECT_GLSL;
+}
+
+
/**
* Creates an object for displaying frames per second.
*
@@ -466,3 +572,8 @@ o3djs.fps.ColorRect.prototype.setSize = function(width, height) {
o3djs.fps.ColorRect.prototype.setColor = function(color) {
this.colorParam_.value = color;
};
+
+
+// For compatability with o3d code, the default language is o3d shading
+// language.
+o3djs.fps.setLanguage('o3d');