Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / webgl / src / sdk / tests / extra / webgl-info.html
1 <!--
2
3 /*
4 ** Copyright (c) 2012 The Khronos Group Inc.
5 **
6 ** Permission is hereby granted, free of charge, to any person obtaining a
7 ** copy of this software and/or associated documentation files (the
8 ** "Materials"), to deal in the Materials without restriction, including
9 ** without limitation the rights to use, copy, modify, merge, publish,
10 ** distribute, sublicense, and/or sell copies of the Materials, and to
11 ** permit persons to whom the Materials are furnished to do so, subject to
12 ** the following conditions:
13 **
14 ** The above copyright notice and this permission notice shall be included
15 ** in all copies or substantial portions of the Materials.
16 **
17 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
24 */
25
26 -->
27
28 <!DOCTYPE html>
29 <html>
30 <head>
31 <meta charset="utf-8">
32 <title>WebGL Information</title>
33 <script src="../../demos/common/webgl-utils.js"> </script>
34 <script src="../conformance/resources/webgl-test-utils.js"> </script>
35 <script>
36 "use strict";
37 window.onload = main;
38
39 function createCell(txt) {
40   var str = txt.toString();
41   if (typeof txt != 'string') {
42     if (txt.length !== undefined) {
43       str = "";
44       for (var ii = 0; ii < txt.length; ++ii) {
45         str += (ii == 0 ? "" : ", ") + txt[ii];
46       }
47     }
48   }
49   var t = document.createTextNode(str);
50   var d = document.createElement("div");
51   var td = document.createElement("td");
52   d.appendChild(t);
53   td.appendChild(d);
54   return td;
55 }
56
57 function createRow(values) {
58   var tr = document.createElement("tr");
59   for (var i = 0; i < values.length; ++i) {
60     var td = createCell(values[i]);
61     tr.appendChild(td);
62   }
63   return tr;
64 }
65
66 function main() {
67   var canvas = document.getElementById("example");
68   var gl = WebGLUtils.setupWebGL(canvas);
69   var wtu = WebGLTestUtils;
70   if (!gl) {
71     return;
72   }
73
74   var pnames = [
75     'VERSION',
76     'VENDOR',
77     'RENDERER',
78     'MAX_COMBINED_TEXTURE_IMAGE_UNITS',
79     'MAX_CUBE_MAP_TEXTURE_SIZE',
80     'MAX_FRAGMENT_UNIFORM_VECTORS',
81     'MAX_RENDERBUFFER_SIZE',
82     'MAX_TEXTURE_IMAGE_UNITS',
83     'MAX_TEXTURE_SIZE',
84     'MAX_VARYING_VECTORS',
85     'MAX_VERTEX_ATTRIBS',
86     'MAX_VERTEX_TEXTURE_IMAGE_UNITS',
87     'MAX_VERTEX_UNIFORM_VECTORS',
88     'MAX_VIEWPORT_DIMS'
89   ];
90
91   var table = document.createElement("table");
92   var tb = document.createElement("tbody");
93   for (var ii = 0; ii < pnames.length; ++ii) {
94     var pname = pnames[ii];
95     var value = gl.getParameter(gl[pname]);
96     tb.appendChild(createRow([pname, value]));
97   }
98   var debugExt =  gl.getExtension('WEBGL_debug_renderer_info');
99   if (debugExt) {
100     var extPnames = [
101       'UNMASKED_VENDOR_WEBGL',
102       'UNMASKED_RENDERER_WEBGL'
103     ];
104     for (var ii = 0; ii < extPnames.length; ++ii) {
105       var pname = extPnames[ii];
106       var value = gl.getParameter(debugExt[pname]);
107       tb.appendChild(createRow([pname, value]));
108     }
109   }
110   table.appendChild(tb);
111   document.getElementById("info").appendChild(table);
112   var extensionList = document.createElement('ul');
113   var exts = gl.getSupportedExtensions();
114   var extsWithPrefixes = [];
115   while (exts.length > 0) {
116     var prefixedNames = wtu.getExtensionPrefixedNames(exts[0]);
117     var supportedPrefixedNames = [];
118     for (var ii = 0; ii < prefixedNames.length; ++ii) {
119       var index = exts.indexOf(prefixedNames[ii]);
120       if (index >= 0) {
121         supportedPrefixedNames.push(exts[index]);
122         exts.splice(index, 1);
123       }
124     }
125     extsWithPrefixes.push(supportedPrefixedNames.join(" / "));
126   }
127   extsWithPrefixes.sort();
128   for (var ii = 0; ii < extsWithPrefixes.length; ++ii) {
129     var li = document.createElement('li');
130     li.appendChild(document.createTextNode(extsWithPrefixes[ii]));
131     extensionList.appendChild(li);
132   }
133   document.getElementById('extensions').appendChild(extensionList);
134 }
135 </script>
136 </head>
137 <body>
138 <h1>WebGL Info</h1>
139 <div id="info"></div>
140 <h2>WebGL Extensions</h2>
141 <div id="extensions"></div>
142 <canvas id="example" width="256" height="16" style="width: 256px; height: 48px;"></canvas>
143 </body>
144 </html>
145