OLD | NEW |
| (Empty) |
1 <!-- | |
2 NOTE: If you need/want this page changed to include | |
3 other browsers please contact the Public WebGL Mailing list | |
4 public_webgl at khronos dot org. | |
5 --> | |
6 <!doctype html> | |
7 <html> | |
8 <head> | |
9 <meta charset="utf-8"> | |
10 <meta http-equiv="X-UA-Compatible" content="chrome=1" /> | |
11 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scal
e=1"></meta> | |
12 <style> | |
13 | |
14 body { | |
15 | |
16 color: #6b6b6b; | |
17 font-family: ubuntu, helvetica, arial, sans, sans-serif; | |
18 | |
19 } | |
20 | |
21 a { | |
22 | |
23 color: #3194d5; | |
24 | |
25 } | |
26 | |
27 @media (max-device-width: 480px) { | |
28 | |
29 #wrapper #support h1 { | |
30 font-weight: bold; | |
31 font-size: 20px; | |
32 margin: 10px 0px; | |
33 } | |
34 #wrapper #support .webgl-div div { | |
35 margin: 10px 10px; | |
36 } | |
37 #wrapper #support #logo-container { | |
38 text-align: center; | |
39 } | |
40 #wrapper #support canvas { | |
41 margin: 10px 0px 10px 0px; | |
42 } | |
43 #wrapper hr { | |
44 margin: 10px 0px; | |
45 } | |
46 #wrapper #moreinfo { | |
47 margin: 10px 0px 0px 0px; | |
48 } | |
49 | |
50 } | |
51 | |
52 @media (min-device-width: 600px) { | |
53 | |
54 #wrapper #support h1 { | |
55 font-weight: normal; | |
56 font-size: 40px; | |
57 margin: 40px 0px; | |
58 } | |
59 | |
60 #wrapper #support { | |
61 text-align: center; | |
62 } | |
63 | |
64 #wrapper #support canvas { | |
65 margin: 30px 0px 10px 0px; | |
66 } | |
67 | |
68 #wrapper hr { | |
69 margin: 40px 0px; | |
70 } | |
71 | |
72 #wrapper { | |
73 width: 600px; | |
74 } | |
75 | |
76 #wrapper #moreinfo { | |
77 width: 250px; | |
78 margin: 0px 20px 0px 20px; | |
79 float: left; | |
80 } | |
81 | |
82 #wrapper #resources { | |
83 width: 250px; | |
84 height: 150px; | |
85 margin: 0px 20px 0px 40px; | |
86 float: left; | |
87 } | |
88 | |
89 #wrapper #support .webgl-div div { | |
90 margin: 20px 100px; | |
91 } | |
92 } | |
93 | |
94 #wrapper { | |
95 margin: auto; | |
96 } | |
97 | |
98 #wrapper hr { | |
99 border-top: solid #e3e3e3; | |
100 border-width: 1px 0px 0px 0px; | |
101 height: 0px; | |
102 } | |
103 | |
104 #wrapper #support h1 { | |
105 color: #33a933; | |
106 } | |
107 | |
108 #wrapper #resources div { | |
109 font-size: 13px; | |
110 } | |
111 | |
112 #wrapper #moreinfo div { | |
113 font-size: 13px; | |
114 } | |
115 | |
116 .webgl-hidden { | |
117 display: none; | |
118 } | |
119 | |
120 #webgl-browser-list { | |
121 white-space: nowrap; | |
122 } | |
123 | |
124 </style> | |
125 <script type="text/javascript" src="troubleshooting/DoNotCopyOrLinkThisFileElseY
ouWillNotGetAutoUpdatedHelpForYourUsers.js"></script> | |
126 <script type="text/javascript" src="tdl/tdl-minified.js"></script> | |
127 <script type="text/javascript" src="logo4.js"></script> | |
128 <script type="text/javascript"> | |
129 /**/ | |
130 | |
131 function $$(x) { | |
132 return document.getElementById(x); | |
133 } | |
134 | |
135 // Add indexOf ot IE. | |
136 if(!Array.indexOf){ | |
137 Array.prototype.indexOf = function(obj){ | |
138 for(var i=0; i<this.length; i++){ | |
139 if(this[i]==obj){ | |
140 return i; | |
141 } | |
142 } | |
143 return -1; | |
144 } | |
145 } | |
146 | |
147 var canvas, gl; | |
148 | |
149 function launchLogo() { | |
150 initializeLogo(canvas); | |
151 } | |
152 | |
153 function log(msg) { | |
154 var d = document.createElement("div"); | |
155 d.appendChild(document.createTextNode(msg)); | |
156 document.body.appendChild(d); | |
157 } | |
158 | |
159 function removeClass(element, clas) { | |
160 // Does not work in IE var classes = element.getAttribute("class"); | |
161 var classes = element.className; | |
162 if (classes) { | |
163 var cs = classes.split(/\s+/); | |
164 if (cs.indexOf(clas) != -1) { | |
165 cs.splice(cs.indexOf(clas), 1); | |
166 } | |
167 // Does not work in IE element.setAttribute("class", cs.join(" ")); | |
168 element.className = cs.join(" "); | |
169 } | |
170 } | |
171 | |
172 function addClass(element, clas) { | |
173 element.className = element.className + " " + clas; | |
174 } | |
175 | |
176 function pageLoaded() { | |
177 removeClass($$("have-javascript"), "webgl-hidden"); | |
178 addClass($$("no-javascript"), "webgl-hidden"); | |
179 b = BrowserDetect; | |
180 b.init(); | |
181 canvas = document.getElementById("webgl-logo"); | |
182 var experimental = false; | |
183 try { gl = canvas.getContext("webgl"); } | |
184 catch (x) { gl = null; } | |
185 | |
186 if (gl == null) { | |
187 try { gl = canvas.getContext("experimental-webgl"); experimental = true;
} | |
188 catch (x) { gl = null; } | |
189 } | |
190 | |
191 if (gl) { | |
192 // hide/show phrase for webgl-experimental | |
193 $$("webgl-experimental").style.display = experimental ? "auto" : "none"; | |
194 | |
195 // Set the support link to the correct URL for the browser. | |
196 $$("support-link").href = b.urls.troubleshootingUrl; | |
197 | |
198 // show webgl supported div, and launch webgl demo | |
199 removeClass($$("webgl-yes"), "webgl-hidden"); | |
200 launchLogo(); | |
201 } else if ("WebGLRenderingContext" in window) { | |
202 // not a foolproof way to check if the browser | |
203 // might actually support WebGL, but better than nothing | |
204 removeClass($$("webgl-disabled"), "webgl-hidden"); | |
205 | |
206 // Do we know this browser? | |
207 if (b.browser != "unknown") { | |
208 // Yes. So show the known-browser message. | |
209 removeClass($$("known-browser"), "webgl-hidden"); | |
210 | |
211 // Hide the unknonw-browser message. | |
212 addClass($$("unknown-browser"), "webgl-hidden"); | |
213 | |
214 // Set the correct link for troubleshooting. | |
215 $$("troubleshooting-link").href = b.urls.troubleshootingUrl; | |
216 } | |
217 } else { | |
218 // Show the no webgl message. | |
219 removeClass($$("webgl-no"), "webgl-hidden"); | |
220 | |
221 // Do we know the browser and can it be upgraded? | |
222 if (b.browser != "unknown" && b.urls.upgradeUrl) { | |
223 // Yes, show the browser and the upgrade link. | |
224 $$("name").innerHTML = b.browser; | |
225 $$("upgrade-link").href = b.urls.upgradeUrl; | |
226 } else { | |
227 // No, so only the link for browser for this platform. | |
228 randomizeBrowsers(); | |
229 addClass($$("upgrade-browser"), "webgl-hidden"); | |
230 removeClass($$("get-browser"), "webgl-hidden"); | |
231 $$("platform").innerHTML = b.platform; | |
232 } | |
233 } | |
234 } | |
235 | |
236 function randomizeBrowsers() { | |
237 | |
238 var bl = $$("webgl-browser-list"); | |
239 var browsers = []; | |
240 var infos = b.platformInfo.browsers; | |
241 for (var ii = 0; ii < infos.length; ++ii) { | |
242 browsers.push({ | |
243 info: infos[ii], | |
244 weight: Math.random() | |
245 }); | |
246 } | |
247 | |
248 browsers = browsers.sort(function(a, b) { | |
249 if (a.weight < b.weight) return -1; | |
250 if (a.weight > b.weight) return 1; | |
251 return 0; | |
252 }); | |
253 | |
254 for (var ii = 0; ii < browsers.length; ++ii) { | |
255 var info = browsers[ii].info; | |
256 var div = document.createElement("p"); | |
257 var a = document.createElement("a"); | |
258 a.href = info.url; | |
259 a.innerHTML = info.name; | |
260 div.appendChild(a); | |
261 bl.appendChild(div); | |
262 } | |
263 } | |
264 | |
265 // addEventListener does not work on IE7/8. | |
266 window.onload = pageLoaded; | |
267 </script> | |
268 </head> | |
269 <body> | |
270 <div id="wrapper"> | |
271 <div id="support"> | |
272 | |
273 <div class="webgl-hidden" id="have-javascript"> | |
274 <div class="webgl-hidden webgl-div" id="webgl-yes"> | |
275 <h1 class="good">Your browser supports WebGL</h1> | |
276 | |
277 <div id="webgl-experimental">However, it indicates that support is | |
278 experimental; you might see issues with some content.</div> | |
279 | |
280 <div>You should see a spinning cube. If you do not, please | |
281 <a id="support-link">visit the support site for your browser</a>.</d
iv> | |
282 | |
283 <div id="logo-container"> | |
284 <canvas id="webgl-logo" width="140" height="150" /></canvas> | |
285 </div> | |
286 </div> | |
287 | |
288 <div class="webgl-hidden webgl-div" id="webgl-disabled"> | |
289 <p>Hmm. While your browser seems to support WebGL, it is disabled o
r unavailable. If possible, please ensure that you are running the latest drive
rs for your video card.</p> | |
290 <p id="known-browser" class="webgl-hidden"><a id="troubleshooting-li
nk" href="">For more help, please click this link</a>.</p> | |
291 <p id="unknown-browser">For more help, please visit the support site
for your browser.</p> | |
292 </div> | |
293 | |
294 <div class="webgl-hidden webgl-div" id="webgl-no"> | |
295 <p>Oh no! We are sorry, but your browser does not seem to support W
ebGL.</p> | |
296 <div id="upgrade-browser"> | |
297 <p><a id="upgrade-link" href="">You can upgrade <span id="name"></sp
an> by clicking this link.</a></p> | |
298 </div> | |
299 <div id="get-browser" class="webgl-hidden"> | |
300 <p>You may want to download one of the following browsers to view We
bGL content.</p> | |
301 | |
302 <p>The following browsers support WebGL on <span id="platform"></spa
n>:</p> | |
303 | |
304 <div id="webgl-browser-list"> | |
305 </div> | |
306 </div> | |
307 </div> | |
308 | |
309 </div> | |
310 <div id="no-javascript"> | |
311 You must enable JavaScript to use WebGL. | |
312 </div> | |
313 | |
314 </div> | |
315 <hr /> | |
316 <div id="resources"> | |
317 | |
318 <div>Check out some of the following links to learn | |
319 more about WebGL and to find more web applications | |
320 using WebGL.</div><br /> | |
321 | |
322 <div><a href="http://www.khronos.org/webgl/wiki/Main_Page">WebGL Wiki</a
></div> | |
323 | |
324 </div> | |
325 <div id="moreinfo"> | |
326 <div>Want more information about WebGL?</div><br /> | |
327 | |
328 <div><a href="http://khronos.org/webgl">khronos.org/webgl</a></div> | |
329 </div> | |
330 </div> | |
331 </div> | |
332 <script id="modelVertexShader" type="text/something-not-javascript"> | |
333 uniform mat4 worldViewProjection; | |
334 attribute vec4 position; | |
335 void main() { | |
336 gl_Position = (worldViewProjection * position); | |
337 } | |
338 | |
339 </script> | |
340 <script id="modelFragmentShader" type="text/something-not-javascript"> | |
341 #ifdef GL_ES | |
342 precision highp float; | |
343 #endif | |
344 void main() { | |
345 gl_FragColor = vec4(0.4, 0.4, 0.4, 1.0); | |
346 } | |
347 </script> | |
348 </body> | |
349 </html> | |
OLD | NEW |