9 | function detectCL() {
|
10 | var
|
11 | platforms,
|
12 | devices,
|
13 | i;
|
14 | // Wenn die WebCL-Erweiterung installiert ist, existiert das WebCL-Objekt als Element des globalen window-Objekts.
|
15 | if (window.WebCL === undefined) {
|
16 | window.document.getElementById("message").innerHTML = "Dein Browser unterst�tzt (noch) kein WebCL. " +
|
17 | "Du brauchst einen Treiber f�r OpenCL 1.1 (z.B. nVidia Grafiktreiber ab Version 280)" +
|
18 | "und die experimentelle WebCL-Erweiterung von Nokia Research.";
|
19 | return false;
|
20 | }
|
21 |
|
22 | try {
|
23 | platforms = window.WebCL.getPlatformIDs(); // Alle auf dem System verf�gbaren WebCL-Platformen werden werden aufgelistet und im Array platforms abgelegt.
|
24 | devices = []; // Innerhalb einer Platform kann es mehrere Devices geben.
|
25 | // z.B. Platform[0] : nVidia Cuda / OpenCL 1.1
|
26 | // Device[0] : Geforce 9800GT
|
27 | // Device[1] : Tesla c2070
|
28 | // Platform[1] : Intel OpenCL SDK
|
29 | // Device[0] : Core i7
|
30 | for (i = 0; i < platforms.length; i = i + 1) {
|
31 | devices[i] = platforms[i].getDeviceIDs(window.WebCL.CL_DEVICE_TYPE_ALL);
|
32 | }
|
33 |
|
34 | // Falls die Abfragen getPlatformIDs oder getDeviceIDs eine Exception werfen, ist WebCL nicht verf�gbar, andernfalls
|
35 | // kann die Erfolgsmeldung ausgegeben werden:
|
36 | window.document.getElementById("message").innerHTML = 'Testergebnis: Super! WebCL funktioniert auf deinem System!';
|
37 | } catch (e) {
|
38 | window.document.getElementById("message").innerHTML = 'Testergebnis: Die WebCL-Erweiterung scheint in deinem Browser installiert zu sein, aber es wurde kein geei gneter Hardwaretreiber f�r OpenCL 1.1 gefunden.';
|
39 | }
|
40 | }
|