提交 5e661c2b 编写于 作者: M Mr.doob

WebGLFlareRenderer, WebGLSpriteRenderer: context lost support.

上级 30c966b5
......@@ -246,6 +246,7 @@ function WebGLRenderer( parameters ) {
var programCache, renderLists;
var background, bufferRenderer, indexedBufferRenderer;
var flareRenderer, spriteRenderer;
function initGLContext() {
......@@ -284,6 +285,9 @@ function WebGLRenderer( parameters ) {
bufferRenderer = new WebGLBufferRenderer( _gl, extensions, _infoRender );
indexedBufferRenderer = new WebGLIndexedBufferRenderer( _gl, extensions, _infoRender );
flareRenderer = new WebGLFlareRenderer( _this, _gl, state, capabilities );
spriteRenderer = new WebGLSpriteRenderer( _this, _gl, state, capabilities );
_this.info.programs = programCache.programs;
_this.context = _gl;
......@@ -309,11 +313,6 @@ function WebGLRenderer( parameters ) {
this.shadowMap = shadowMap;
//
var spriteRenderer = new WebGLSpriteRenderer( this, spritesArray );
var flareRenderer = new WebGLFlareRenderer( this, flaresArray );
// API
this.getContext = function () {
......@@ -1184,8 +1183,8 @@ function WebGLRenderer( parameters ) {
// custom renderers
spriteRenderer.render( scene, camera );
flareRenderer.render( scene, camera, _currentViewport );
spriteRenderer.render( spritesArray, scene, camera );
flareRenderer.render( flaresArray, scene, camera, _currentViewport );
// Generate mipmap if we're using any kind of mipmap filtering
......
......@@ -7,10 +7,7 @@ import { Box2 } from '../../math/Box2';
import { Vector2 } from '../../math/Vector2';
import { Vector3 } from '../../math/Vector3';
function WebGLFlareRenderer( renderer, flares ) {
var gl = renderer.context;
var state = renderer.state;
function WebGLFlareRenderer( renderer, gl, state, capabilities ) {
var vertexBuffer, elementBuffer;
var shader, program, attributes, uniforms;
......@@ -181,7 +178,7 @@ function WebGLFlareRenderer( renderer, flares ) {
* reads these back and calculates occlusion.
*/
this.render = function ( scene, camera, viewport ) {
this.render = function ( flares, scene, camera, viewport ) {
if ( flares.length === 0 ) return;
......@@ -366,7 +363,7 @@ function WebGLFlareRenderer( renderer, flares ) {
var fragmentShader = gl.createShader( gl.FRAGMENT_SHADER );
var vertexShader = gl.createShader( gl.VERTEX_SHADER );
var prefix = "precision " + renderer.getPrecision() + " float;\n";
var prefix = "precision " + capabilities.precision + " float;\n";
gl.shaderSource( fragmentShader, prefix + shader.fragmentShader );
gl.shaderSource( vertexShader, prefix + shader.vertexShader );
......
......@@ -7,10 +7,7 @@ import { CanvasTexture } from '../../textures/CanvasTexture';
import { Vector3 } from '../../math/Vector3';
import { Quaternion } from '../../math/Quaternion';
function WebGLSpriteRenderer( renderer, sprites ) {
var gl = renderer.context;
var state = renderer.state;
function WebGLSpriteRenderer( renderer, gl, state, capabilities ) {
var vertexBuffer, elementBuffer;
var program, attributes, uniforms;
......@@ -88,7 +85,7 @@ function WebGLSpriteRenderer( renderer, sprites ) {
}
this.render = function ( scene, camera ) {
this.render = function ( sprites, scene, camera ) {
if ( sprites.length === 0 ) return;
......@@ -261,7 +258,7 @@ function WebGLSpriteRenderer( renderer, sprites ) {
gl.shaderSource( vertexShader, [
'precision ' + renderer.getPrecision() + ' float;',
'precision ' + capabilities.precision + ' float;',
'#define SHADER_NAME ' + 'SpriteMaterial',
......@@ -301,7 +298,7 @@ function WebGLSpriteRenderer( renderer, sprites ) {
gl.shaderSource( fragmentShader, [
'precision ' + renderer.getPrecision() + ' float;',
'precision ' + capabilities.precision + ' float;',
'#define SHADER_NAME ' + 'SpriteMaterial',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册