-
-
Notifications
You must be signed in to change notification settings - Fork 35.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #20009 from DefinitelyMaybe/src/textures--move-to-…
…es6-classes src/textures: move to es6 classes
- Loading branch information
Showing
9 changed files
with
184 additions
and
181 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,17 @@ | ||
import { Texture } from './Texture.js'; | ||
|
||
function CanvasTexture( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) { | ||
class CanvasTexture extends Texture { | ||
|
||
Texture.call( this, canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); | ||
constructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) { | ||
|
||
this.needsUpdate = true; | ||
super( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); | ||
|
||
this.needsUpdate = true; | ||
|
||
} | ||
|
||
} | ||
|
||
CanvasTexture.prototype = Object.create( Texture.prototype ); | ||
CanvasTexture.prototype.constructor = CanvasTexture; | ||
CanvasTexture.prototype.isCanvasTexture = true; | ||
|
||
export { CanvasTexture }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,28 @@ | ||
import { Texture } from './Texture.js'; | ||
|
||
function CompressedTexture( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) { | ||
class CompressedTexture extends Texture { | ||
|
||
Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ); | ||
constructor( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) { | ||
|
||
this.image = { width: width, height: height }; | ||
this.mipmaps = mipmaps; | ||
super( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ); | ||
|
||
// no flipping for cube textures | ||
// (also flipping doesn't work for compressed textures ) | ||
this.image = { width: width, height: height }; | ||
this.mipmaps = mipmaps; | ||
|
||
this.flipY = false; | ||
// no flipping for cube textures | ||
// (also flipping doesn't work for compressed textures ) | ||
|
||
// can't generate mipmaps for compressed textures | ||
// mips must be embedded in DDS files | ||
this.flipY = false; | ||
|
||
this.generateMipmaps = false; | ||
// can't generate mipmaps for compressed textures | ||
// mips must be embedded in DDS files | ||
|
||
} | ||
this.generateMipmaps = false; | ||
|
||
CompressedTexture.prototype = Object.create( Texture.prototype ); | ||
CompressedTexture.prototype.constructor = CompressedTexture; | ||
} | ||
|
||
CompressedTexture.prototype.isCompressedTexture = true; | ||
} | ||
|
||
CompressedTexture.prototype.isCompressedTexture = true; | ||
|
||
export { CompressedTexture }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,46 @@ | ||
import { Texture } from './Texture.js'; | ||
import { CubeReflectionMapping, RGBFormat } from '../constants.js'; | ||
|
||
function CubeTexture( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ) { | ||
class CubeTexture extends Texture { | ||
|
||
images = images !== undefined ? images : []; | ||
mapping = mapping !== undefined ? mapping : CubeReflectionMapping; | ||
format = format !== undefined ? format : RGBFormat; | ||
constructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ) { | ||
|
||
Texture.call( this, images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ); | ||
images = images !== undefined ? images : []; | ||
mapping = mapping !== undefined ? mapping : CubeReflectionMapping; | ||
format = format !== undefined ? format : RGBFormat; | ||
|
||
this.flipY = false; | ||
super( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ); | ||
|
||
// Why CubeTexture._needsFlipEnvMap is necessary: | ||
// | ||
// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js) | ||
// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words, | ||
// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly. | ||
// Why CubeTexture._needsFlipEnvMap is necessary: | ||
// | ||
// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js) | ||
// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words, | ||
// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly. | ||
|
||
// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped | ||
// and the flag _needsFlipEnvMap controls this conversion. The flip is not required (and thus _needsFlipEnvMap is set to false) | ||
// when using WebGLCubeRenderTarget.texture as a cube texture. | ||
// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped | ||
// and the flag _needsFlipEnvMap controls this conversion. The flip is not required (and thus _needsFlipEnvMap is set to false) | ||
// when using WebGLCubeRenderTarget.texture as a cube texture. | ||
|
||
this._needsFlipEnvMap = true; | ||
this._needsFlipEnvMap = true; | ||
|
||
} | ||
|
||
CubeTexture.prototype = Object.create( Texture.prototype ); | ||
CubeTexture.prototype.constructor = CubeTexture; | ||
|
||
CubeTexture.prototype.isCubeTexture = true; | ||
this.flipY = false; | ||
|
||
Object.defineProperty( CubeTexture.prototype, 'images', { | ||
} | ||
|
||
get: function () { | ||
get images() { | ||
|
||
return this.image; | ||
|
||
}, | ||
} | ||
|
||
set: function ( value ) { | ||
set images( value ) { | ||
|
||
this.image = value; | ||
|
||
} | ||
|
||
} ); | ||
} | ||
|
||
CubeTexture.prototype.isCubeTexture = true; | ||
|
||
export { CubeTexture }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,27 @@ | ||
import { Texture } from './Texture.js'; | ||
import { NearestFilter } from '../constants.js'; | ||
|
||
function DataTexture( data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) { | ||
class DataTexture extends Texture { | ||
|
||
Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ); | ||
constructor( data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) { | ||
|
||
this.image = { data: data || null, width: width || 1, height: height || 1 }; | ||
super( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ); | ||
|
||
this.magFilter = magFilter !== undefined ? magFilter : NearestFilter; | ||
this.minFilter = minFilter !== undefined ? minFilter : NearestFilter; | ||
this.image = { data: data || null, width: width || 1, height: height || 1 }; | ||
|
||
this.generateMipmaps = false; | ||
this.flipY = false; | ||
this.unpackAlignment = 1; | ||
this.magFilter = magFilter !== undefined ? magFilter : NearestFilter; | ||
this.minFilter = minFilter !== undefined ? minFilter : NearestFilter; | ||
|
||
this.needsUpdate = true; | ||
this.generateMipmaps = false; | ||
this.flipY = false; | ||
this.unpackAlignment = 1; | ||
|
||
} | ||
this.needsUpdate = true; | ||
|
||
DataTexture.prototype = Object.create( Texture.prototype ); | ||
DataTexture.prototype.constructor = DataTexture; | ||
} | ||
|
||
DataTexture.prototype.isDataTexture = true; | ||
} | ||
|
||
DataTexture.prototype.isDataTexture = true; | ||
|
||
export { DataTexture }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,28 @@ | ||
import { Texture } from './Texture.js'; | ||
import { ClampToEdgeWrapping, NearestFilter } from '../constants.js'; | ||
|
||
function DataTexture2DArray( data = null, width = 1, height = 1, depth = 1 ) { | ||
class DataTexture2DArray extends Texture { | ||
|
||
Texture.call( this, null ); | ||
constructor( data = null, width = 1, height = 1, depth = 1 ) { | ||
|
||
this.image = { data, width, height, depth }; | ||
super( null ); | ||
|
||
this.magFilter = NearestFilter; | ||
this.minFilter = NearestFilter; | ||
this.image = { data, width, height, depth }; | ||
|
||
this.wrapR = ClampToEdgeWrapping; | ||
this.magFilter = NearestFilter; | ||
this.minFilter = NearestFilter; | ||
|
||
this.generateMipmaps = false; | ||
this.flipY = false; | ||
this.wrapR = ClampToEdgeWrapping; | ||
|
||
this.needsUpdate = true; | ||
this.generateMipmaps = false; | ||
this.flipY = false; | ||
|
||
this.needsUpdate = true; | ||
|
||
} | ||
|
||
} | ||
|
||
DataTexture2DArray.prototype = Object.create( Texture.prototype ); | ||
DataTexture2DArray.prototype.constructor = DataTexture2DArray; | ||
DataTexture2DArray.prototype.isDataTexture2DArray = true; | ||
|
||
export { DataTexture2DArray }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,36 @@ | ||
import { Texture } from './Texture.js'; | ||
import { ClampToEdgeWrapping, NearestFilter } from '../constants.js'; | ||
|
||
function DataTexture3D( data = null, width = 1, height = 1, depth = 1 ) { | ||
class DataTexture3D extends Texture { | ||
|
||
// We're going to add .setXXX() methods for setting properties later. | ||
// Users can still set in DataTexture3D directly. | ||
// | ||
// const texture = new THREE.DataTexture3D( data, width, height, depth ); | ||
// texture.anisotropy = 16; | ||
// | ||
// See #14839 | ||
constructor( data = null, width = 1, height = 1, depth = 1 ) { | ||
|
||
Texture.call( this, null ); | ||
// We're going to add .setXXX() methods for setting properties later. | ||
// Users can still set in DataTexture3D directly. | ||
// | ||
// const texture = new THREE.DataTexture3D( data, width, height, depth ); | ||
// texture.anisotropy = 16; | ||
// | ||
// See #14839 | ||
|
||
this.image = { data, width, height, depth }; | ||
super( null ); | ||
|
||
this.magFilter = NearestFilter; | ||
this.minFilter = NearestFilter; | ||
this.image = { data, width, height, depth }; | ||
|
||
this.wrapR = ClampToEdgeWrapping; | ||
this.magFilter = NearestFilter; | ||
this.minFilter = NearestFilter; | ||
|
||
this.generateMipmaps = false; | ||
this.flipY = false; | ||
this.wrapR = ClampToEdgeWrapping; | ||
|
||
this.needsUpdate = true; | ||
this.generateMipmaps = false; | ||
this.flipY = false; | ||
|
||
this.needsUpdate = true; | ||
|
||
} | ||
|
||
} | ||
|
||
DataTexture3D.prototype = Object.create( Texture.prototype ); | ||
DataTexture3D.prototype.constructor = DataTexture3D; | ||
DataTexture3D.prototype.isDataTexture3D = true; | ||
|
||
export { DataTexture3D }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,36 @@ | ||
import { Texture } from './Texture.js'; | ||
import { NearestFilter, UnsignedShortType, UnsignedInt248Type, DepthFormat, DepthStencilFormat } from '../constants.js'; | ||
|
||
function DepthTexture( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format ) { | ||
class DepthTexture extends Texture { | ||
|
||
format = format !== undefined ? format : DepthFormat; | ||
constructor( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format ) { | ||
|
||
if ( format !== DepthFormat && format !== DepthStencilFormat ) { | ||
format = format !== undefined ? format : DepthFormat; | ||
|
||
throw new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' ); | ||
if ( format !== DepthFormat && format !== DepthStencilFormat ) { | ||
|
||
} | ||
throw new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' ); | ||
|
||
} | ||
|
||
if ( type === undefined && format === DepthFormat ) type = UnsignedShortType; | ||
if ( type === undefined && format === DepthStencilFormat ) type = UnsignedInt248Type; | ||
|
||
if ( type === undefined && format === DepthFormat ) type = UnsignedShortType; | ||
if ( type === undefined && format === DepthStencilFormat ) type = UnsignedInt248Type; | ||
super( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); | ||
|
||
Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); | ||
this.image = { width: width, height: height }; | ||
|
||
this.image = { width: width, height: height }; | ||
this.magFilter = magFilter !== undefined ? magFilter : NearestFilter; | ||
this.minFilter = minFilter !== undefined ? minFilter : NearestFilter; | ||
|
||
this.magFilter = magFilter !== undefined ? magFilter : NearestFilter; | ||
this.minFilter = minFilter !== undefined ? minFilter : NearestFilter; | ||
this.flipY = false; | ||
this.generateMipmaps = false; | ||
|
||
} | ||
|
||
this.flipY = false; | ||
this.generateMipmaps = false; | ||
|
||
} | ||
|
||
DepthTexture.prototype = Object.create( Texture.prototype ); | ||
DepthTexture.prototype.constructor = DepthTexture; | ||
DepthTexture.prototype.isDepthTexture = true; | ||
|
||
export { DepthTexture }; |
Oops, something went wrong.