|
@@ -26,6 +26,7 @@ class WebXRManager extends EventDispatcher {
|
|
|
|
|
|
let session = null;
|
|
|
let framebufferScaleFactor = 1.0;
|
|
|
+ let limitWithNativeFramebufferScaleFactor = false;
|
|
|
|
|
|
let referenceSpace = null;
|
|
|
let referenceSpaceType = 'local-floor';
|
|
@@ -185,9 +186,10 @@ class WebXRManager extends EventDispatcher {
|
|
|
|
|
|
}
|
|
|
|
|
|
- this.setFramebufferScaleFactor = function ( value ) {
|
|
|
+ this.setFramebufferScaleFactor = function ( value, limited = false ) {
|
|
|
|
|
|
framebufferScaleFactor = value;
|
|
|
+ limitWithNativeFramebufferScaleFactor = limited;
|
|
|
|
|
|
if ( scope.isPresenting === true ) {
|
|
|
|
|
@@ -268,6 +270,18 @@ class WebXRManager extends EventDispatcher {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ if ( limitWithNativeFramebufferScaleFactor === true && XRWebGLLayer.getNativeFramebufferScaleFactor ) {
|
|
|
+
|
|
|
+ const nativeFramebufferScaleFactor = XRWebGLLayer.getNativeFramebufferScaleFactor( session );
|
|
|
+
|
|
|
+ if ( nativeFramebufferScaleFactor < framebufferScaleFactor ) {
|
|
|
+
|
|
|
+ framebufferScaleFactor = nativeFramebufferScaleFactor;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
if ( ( session.renderState.layers === undefined ) || ( renderer.capabilities.isWebGL2 === false ) ) {
|
|
|
|
|
|
const layerInit = {
|