Skip to content

Commit 35eccde

Browse files
committed
Sprite: Construct BufferGeometry when needed.
1 parent 76f5304 commit 35eccde

File tree

1 file changed

+26
-28
lines changed

1 file changed

+26
-28
lines changed

src/objects/Sprite.js

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/**
2+
* @author mikael emtinger / http://gomo.se/
3+
* @author alteredq / http://alteredqualia.com/
4+
*/
5+
16
import { Vector2 } from '../math/Vector2.js';
27
import { Vector3 } from '../math/Vector3.js';
38
import { Matrix4 } from '../math/Matrix4.js';
@@ -7,19 +12,35 @@ import { InterleavedBuffer } from '../core/InterleavedBuffer.js';
712
import { InterleavedBufferAttribute } from '../core/InterleavedBufferAttribute.js';
813
import { SpriteMaterial } from '../materials/SpriteMaterial.js';
914

10-
/**
11-
* @author mikael emtinger / http://gomo.se/
12-
* @author alteredq / http://alteredqualia.com/
13-
*/
15+
var geometry;
1416

1517
function Sprite( material ) {
1618

1719
Object3D.call( this );
1820

1921
this.type = 'Sprite';
2022

23+
if ( geometry === undefined ) {
24+
25+
geometry = new BufferGeometry();
26+
27+
var float32Array = new Float32Array( [
28+
- 0.5, - 0.5, 0, 0, 0,
29+
0.5, - 0.5, 0, 1, 0,
30+
0.5, 0.5, 0, 1, 1,
31+
- 0.5, 0.5, 0, 0, 1
32+
] );
33+
34+
var interleavedBuffer = new InterleavedBuffer( float32Array, 5 );
35+
36+
geometry.setIndex( [ 0, 1, 2, 0, 2, 3 ] );
37+
geometry.addAttribute( 'position', new InterleavedBufferAttribute( interleavedBuffer, 3, 0, false ) );
38+
geometry.addAttribute( 'uv', new InterleavedBufferAttribute( interleavedBuffer, 2, 3, false ) );
39+
40+
}
41+
42+
this.geometry = geometry;
2143
this.material = ( material !== undefined ) ? material : new SpriteMaterial();
22-
this.geometry = SpriteGeometry;
2344

2445
this.center = new Vector2( 0.5, 0.5 );
2546

@@ -145,27 +166,4 @@ Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
145166

146167
} );
147168

148-
//
149-
150-
var SpriteGeometry = ( function () {
151-
152-
var geometry = new BufferGeometry();
153-
154-
var float32Array = new Float32Array( [
155-
- 0.5, - 0.5, 0, 0, 0,
156-
0.5, - 0.5, 0, 1, 0,
157-
0.5, 0.5, 0, 1, 1,
158-
- 0.5, 0.5, 0, 0, 1
159-
] );
160-
161-
var interleavedBuffer = new InterleavedBuffer( float32Array, 5 );
162-
163-
geometry.setIndex( [ 0, 1, 2, 0, 2, 3 ] );
164-
geometry.addAttribute( 'position', new InterleavedBufferAttribute( interleavedBuffer, 3, 0, false ) );
165-
geometry.addAttribute( 'uv', new InterleavedBufferAttribute( interleavedBuffer, 2, 3, false ) );
166-
167-
return geometry;
168-
169-
} )();
170-
171169
export { Sprite };

0 commit comments

Comments
 (0)