|
@@ -9,6 +9,7 @@ import {
|
|
|
Mesh,
|
|
|
MeshBasicMaterial,
|
|
|
RawShaderMaterial,
|
|
|
+ UnsignedByteType,
|
|
|
Vector2,
|
|
|
Vector3,
|
|
|
Vector4
|
|
@@ -36,6 +37,8 @@ class Lensflare extends Mesh {
|
|
|
const tempMap = new FramebufferTexture( 16, 16 );
|
|
|
const occlusionMap = new FramebufferTexture( 16, 16 );
|
|
|
|
|
|
+ let currentType = UnsignedByteType;
|
|
|
+
|
|
|
// material
|
|
|
|
|
|
const geometry = Lensflare.Geometry;
|
|
@@ -162,6 +165,20 @@ class Lensflare extends Mesh {
|
|
|
|
|
|
renderer.getCurrentViewport( viewport );
|
|
|
|
|
|
+ const renderTarget = renderer.getRenderTarget();
|
|
|
+ const type = ( renderTarget !== null ) ? renderTarget.texture.type : UnsignedByteType;
|
|
|
+
|
|
|
+ if ( currentType !== type ) {
|
|
|
+
|
|
|
+ tempMap.dispose();
|
|
|
+ occlusionMap.dispose();
|
|
|
+
|
|
|
+ tempMap.type = occlusionMap.type = type;
|
|
|
+
|
|
|
+ currentType = type;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
const invAspect = viewport.w / viewport.z;
|
|
|
const halfViewportWidth = viewport.z / 2.0;
|
|
|
const halfViewportHeight = viewport.w / 2.0;
|