Update globe files
This commit is contained in:
103
src/modules/globe/beam/Renderer.js
Executable file
103
src/modules/globe/beam/Renderer.js
Executable file
@@ -0,0 +1,103 @@
|
||||
|
||||
class Renderer {
|
||||
|
||||
constructor(options) {
|
||||
|
||||
this.canvas = (options && options.canvas) || document.createElement('canvas');
|
||||
|
||||
this.canvas.style.transformOrigin = '0 0';
|
||||
|
||||
this.contextAttributes = Object.assign({},{
|
||||
alpha: false,
|
||||
depth: true,
|
||||
stencil: true,
|
||||
antialias: false,
|
||||
premultipliedAlpha: true,
|
||||
preserveDrawingBuffer: false,
|
||||
failIfMajorPerformanceCaveat: false,
|
||||
}, (options || {}) );
|
||||
|
||||
this._pixelRatio = 1;
|
||||
|
||||
this.gl = this.canvas.getContext("experimental-webgl", this.contextAttributes);
|
||||
|
||||
this.handleContextLost = this.handleContextLost.bind(this);
|
||||
this.handleContextRestored = this.handleContextRestored.bind(this);
|
||||
this.canvas.addEventListener('webglcontextlost', this.handleContextLost, false);
|
||||
this.canvas.addEventListener('webglcontextrestored', this.handleContextRestored, false);
|
||||
|
||||
}
|
||||
|
||||
handleContextLost(event){
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
handleContextRestored(){
|
||||
|
||||
}
|
||||
|
||||
handleContextRestored() {
|
||||
|
||||
}
|
||||
|
||||
render(container, camera, frameBuffer, preventCameraUpdate) {
|
||||
|
||||
if (!this.gl) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!preventCameraUpdate) {
|
||||
camera.update();
|
||||
}
|
||||
|
||||
if (frameBuffer){
|
||||
frameBuffer.bindFrame();
|
||||
container.render( camera );
|
||||
frameBuffer.unbind();
|
||||
}
|
||||
else{
|
||||
this.gl.viewport(0, 0, this._width* this._pixelRatio , this._height* this._pixelRatio );
|
||||
container.render( camera );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
resize(width, height) {
|
||||
if (!this.gl) {
|
||||
return;
|
||||
}
|
||||
this._width = width;
|
||||
this._height = height;
|
||||
this.canvas.width = this._width * this._pixelRatio;
|
||||
this.canvas.height = this._height * this._pixelRatio;
|
||||
this.canvas.style.transform = 'scale('+(1/this._pixelRatio)+') translateZ(0)';
|
||||
this.gl.viewport(0, 0, this._width* this._pixelRatio , this._height* this._pixelRatio );
|
||||
}
|
||||
|
||||
clearColor(r, g, b, alpha) {
|
||||
if (!this.gl) {
|
||||
return;
|
||||
}
|
||||
this.gl.clearColor(r, g, b, alpha);
|
||||
}
|
||||
|
||||
clear(color, depth, stencil) {
|
||||
if (!this.gl) {
|
||||
return;
|
||||
}
|
||||
var bits = 0;
|
||||
if ( color === void 0 || color ) bits |= this.gl.COLOR_BUFFER_BIT;
|
||||
if ( depth === void 0 || depth ) bits |= this.gl.DEPTH_BUFFER_BIT;
|
||||
if ( stencil === void 0 || stencil ) bits |= this.gl.STENCIL_BUFFER_BIT;
|
||||
this.gl.clear( bits );
|
||||
}
|
||||
|
||||
setPixelRatio(ratio) {
|
||||
this._pixelRatio = ratio;
|
||||
this.resize(this._width, this._height);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
export default Renderer;
|
||||
Reference in New Issue
Block a user