提交 49cf7a66 编写于 作者: M Mr.doob

WebGLRenderer: Added setFramebuffer(). Fixes shadows in WebXR.

上级 84ae82be
......@@ -123,6 +123,8 @@ function WebGLRenderer( parameters ) {
// internal state cache
_framebuffer = null,
_currentRenderTarget = null,
_currentFramebuffer = null,
_currentMaterialId = - 1,
......@@ -290,7 +292,7 @@ function WebGLRenderer( parameters ) {
// vr
var vr = ( 'xr' in navigator ) ? new WebXRManager( _gl ) : new WebVRManager( _this );
var vr = ( 'xr' in navigator ) ? new WebXRManager( _this ) : new WebVRManager( _this );
this.vr = vr;
......@@ -2396,6 +2398,14 @@ function WebGLRenderer( parameters ) {
}() );
//
this.setFramebuffer = function ( value ) {
_framebuffer = value;
};
this.getRenderTarget = function () {
return _currentRenderTarget;
......@@ -2412,7 +2422,7 @@ function WebGLRenderer( parameters ) {
}
var framebuffer = null;
var framebuffer = _framebuffer;
var isCube = false;
if ( renderTarget ) {
......
......@@ -10,10 +10,11 @@ import { ArrayCamera } from '../../cameras/ArrayCamera.js';
import { PerspectiveCamera } from '../../cameras/PerspectiveCamera.js';
import { WebGLAnimation } from '../webgl/WebGLAnimation.js';
function WebXRManager( gl ) {
function WebXRManager( renderer ) {
var scope = this;
var gl = renderer.context;
var device = null;
var session = null;
......@@ -70,7 +71,7 @@ function WebXRManager( gl ) {
session.addEventListener( 'end', function () {
gl.bindFramebuffer( gl.FRAMEBUFFER, null );
renderer.setFramebuffer( null );
animation.stop();
} );
......@@ -81,6 +82,8 @@ function WebXRManager( gl ) {
frameOfRef = value;
isExclusive = session.exclusive;
renderer.setFramebuffer( session.baseLayer.framebuffer );
animation.setContext( session );
animation.start();
......@@ -135,8 +138,6 @@ function WebXRManager( gl ) {
}
gl.bindFramebuffer( gl.FRAMEBUFFER, session.baseLayer.framebuffer );
if ( onAnimationFrameCallback ) onAnimationFrameCallback();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册