MCPcopy
hub / github.com/stemkoski/stemkoski.github.com / renderSprite

Function renderSprite

Three.js/js/Three66.js:16520–16624  ·  view source on GitHub ↗
( v1, element, material )

Source from the content-addressed store, hash-verified

16518 }
16519
16520 function renderSprite( v1, element, material ) {
16521
16522 setOpacity( material.opacity );
16523 setBlending( material.blending );
16524
16525 var scaleX = element.scale.x * _canvasWidthHalf;
16526 var scaleY = element.scale.y * _canvasHeightHalf;
16527
16528 var dist = 0.5 * Math.sqrt( scaleX * scaleX + scaleY * scaleY ); // allow for rotated sprite
16529 _elemBox.min.set( v1.x - dist, v1.y - dist );
16530 _elemBox.max.set( v1.x + dist, v1.y + dist );
16531
16532 if ( material instanceof THREE.SpriteMaterial ||
16533 material instanceof THREE.ParticleSystemMaterial ) { // Backwards compatibility
16534
16535 var texture = material.map;
16536
16537 if ( texture !== null ) {
16538
16539 if ( texture.hasEventListener( 'update', onTextureUpdate ) === false ) {
16540
16541 if ( texture.image !== undefined && texture.image.width > 0 ) {
16542
16543 textureToPattern( texture );
16544
16545 }
16546
16547 texture.addEventListener( 'update', onTextureUpdate );
16548
16549 }
16550
16551 var pattern = _patterns[ texture.id ];
16552
16553 if ( pattern !== undefined ) {
16554
16555 setFillStyle( pattern );
16556
16557 } else {
16558
16559 setFillStyle( 'rgba( 0, 0, 0, 1 )' );
16560
16561 }
16562
16563 //
16564
16565 var bitmap = texture.image;
16566
16567 var ox = bitmap.width * texture.offset.x;
16568 var oy = bitmap.height * texture.offset.y;
16569
16570 var sx = bitmap.width * texture.repeat.x;
16571 var sy = bitmap.height * texture.repeat.y;
16572
16573 var cx = scaleX / sx;
16574 var cy = scaleY / sy;
16575
16576 _context.save();
16577 _context.translate( v1.x, v1.y );

Callers 1

Three66.jsFile · 0.70

Calls 5

textureToPatternFunction · 0.85
setOpacityFunction · 0.70
setBlendingFunction · 0.70
setFillStyleFunction · 0.70
setStrokeStyleFunction · 0.70

Tested by

no test coverage detected