diff options
Diffstat (limited to 'o3d/samples/o3djs/fps.js')
-rw-r--r-- | o3d/samples/o3djs/fps.js | 113 |
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'); |