Skip to content

Commit 8e7c434

Browse files
committed
Use package to obtain webgl context
1 parent fce36fa commit 8e7c434

File tree

4 files changed

+28
-41
lines changed

4 files changed

+28
-41
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@
8787
"sane-topojson": "^1.2.0",
8888
"superscript-text": "^1.0.0",
8989
"tinycolor2": "^1.3.0",
90-
"topojson": "^1.6.20"
90+
"topojson": "^1.6.20",
91+
"webgl-context": "^2.2.0"
9192
},
9293
"devDependencies": {
9394
"brfs": "^1.4.3",

src/plots/gl2d/scene2d.js

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var Fx = require('../../plots/cartesian/graph_interact');
1515
var createPlot2D = require('gl-plot2d');
1616
var createSpikes = require('gl-spikes2d');
1717
var createSelectBox = require('gl-select-box');
18+
var getContext = require('webgl-context');
1819

1920
var createOptions = require('./convert');
2021
var createCamera = require('./camera');
@@ -82,40 +83,28 @@ proto.makeFramework = function() {
8283
if(!STATIC_CONTEXT) {
8384
STATIC_CANVAS = document.createElement('canvas');
8485

85-
try {
86-
STATIC_CONTEXT = STATIC_CANVAS.getContext('webgl', {
87-
preserveDrawingBuffer: false,
88-
premultipliedAlpha: true,
89-
antialias: true
90-
});
91-
} catch(e) {
92-
throw new Error([
93-
'Error creating static canvas/context for image server'
94-
].join(' '));
86+
STATIC_CONTEXT = getContext({
87+
canvas: STATIC_CANVAS,
88+
preserveDrawingBuffer: false,
89+
premultipliedAlpha: true,
90+
antialias: true
91+
});
92+
93+
if(!STATIC_CONTEXT) {
94+
throw new Error('Error creating static canvas/context for image server');
9595
}
9696
}
9797

9898
this.canvas = STATIC_CANVAS;
9999
this.gl = STATIC_CONTEXT;
100100
}
101101
else {
102-
var liveCanvas = document.createElement('canvas'),
103-
glOpts = { premultipliedAlpha: true };
104-
var gl;
105-
106-
try {
107-
gl = liveCanvas.getContext('webgl', glOpts);
108-
} catch(e) {
109-
//
110-
}
102+
var liveCanvas = document.createElement('canvas');
111103

112-
if(!gl) {
113-
try {
114-
gl = liveCanvas.getContext('experimental-webgl', glOpts);
115-
} catch(e) {
116-
//
117-
}
118-
}
104+
var gl = getContext({
105+
canvas: liveCanvas,
106+
premultipliedAlpha: true
107+
});
119108

120109
if(!gl) showNoWebGlMsg(this);
121110

src/plots/gl3d/scene.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
'use strict';
1111

1212
var createPlot = require('gl-plot3d');
13+
var getContext = require('webgl-context');
1314

1415
var Lib = require('../../lib');
1516

@@ -143,13 +144,13 @@ function initializeGLPlot(scene, fullLayout, canvas, gl) {
143144
if(scene.staticMode) {
144145
if(!STATIC_CONTEXT) {
145146
STATIC_CANVAS = document.createElement('canvas');
146-
try {
147-
STATIC_CONTEXT = STATIC_CANVAS.getContext('webgl', {
148-
preserveDrawingBuffer: true,
149-
premultipliedAlpha: true,
150-
antialias: true
151-
});
152-
} catch(e) {
147+
STATIC_CONTEXT = getContext({
148+
canvas: STATIC_CANVAS,
149+
preserveDrawingBuffer: true,
150+
premultipliedAlpha: true,
151+
antialias: true
152+
});
153+
if(!STATIC_CONTEXT) {
153154
throw new Error('error creating static canvas/context for image server');
154155
}
155156
}

test/jasmine/assets/has_webgl_support.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
'use strict';
22

3+
var getContext = require('webgl-context')
34

45
module.exports = function hasWebGLSupport(testName) {
56
var gl, canvas;
67

7-
try {
8-
canvas = document.createElement('canvas');
9-
gl = canvas.getContext('webgl');
10-
}
11-
catch(err) {
12-
gl = null;
13-
}
8+
canvas = document.createElement('canvas');
9+
gl = getContext({canvas: canvas});
1410

1511
var hasSupport = !!gl;
1612

0 commit comments

Comments
 (0)