openfl
Version:
A fast, productive library for 2D cross-platform development.
739 lines (722 loc) • 25.4 kB
JavaScript
// Class: openfl.display._internal.Context3DGraphics
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./../../../hxClasses_stub").default;
var $hxEnums = require("./../../../hxEnums_stub").default;
var $import = require("./../../../import_stub").default;
function openfl_display_BitmapData() {return require("./../../../openfl/display/BitmapData");}
function openfl_geom_ColorTransform() {return require("./../../../openfl/geom/ColorTransform");}
function openfl_display__$internal_DrawCommandReader() {return require("./../../../openfl/display/_internal/DrawCommandReader");}
function openfl_geom_Rectangle() {return require("./../../../openfl/geom/Rectangle");}
function openfl_geom_Matrix() {return require("./../../../openfl/geom/Matrix");}
function openfl_display__$internal_Context3DBuffer() {return require("./../../../openfl/display/_internal/Context3DBuffer");}
function openfl_display__$internal_Context3DElementType() {return require("./../../../openfl/display/_internal/Context3DElementType");}
function lime_utils__$Float32Array_Float32Array_$Impl_$() {return require("./../../../lime/utils/_Float32Array/Float32Array_Impl_");}
function openfl_display__$internal_CanvasGraphics() {return require("./../../../openfl/display/_internal/CanvasGraphics");}
function Std() {return require("./../../../Std");}
// Constructor
var Context3DGraphics = function(){}
// Meta
Context3DGraphics.__name__ = "openfl.display._internal.Context3DGraphics";
Context3DGraphics.__isInterface__ = false;
Context3DGraphics.prototype = {
};
Context3DGraphics.prototype.__class__ = Context3DGraphics.prototype.constructor = $hxClasses["openfl.display._internal.Context3DGraphics"] = Context3DGraphics;
// Init
// Statics
Context3DGraphics.buildBuffer = function(graphics,renderer) {
var quadBufferPosition = 0;
var triangleIndexBufferPosition = 0;
var vertexBufferPosition = 0;
var vertexBufferPositionUVT = 0;
var data = new (openfl_display__$internal_DrawCommandReader().default)(graphics.__commands);
var context = renderer.__context3D;
var tileRect = (openfl_geom_Rectangle().default).__pool.get();
var tileTransform = (openfl_geom_Matrix().default).__pool.get();
var bitmap = null;
var _g = 0;
var _g1 = graphics.__commands.types;
while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:
var c = data.readBeginBitmapFill();
bitmap = c.obj(0);
break;
case 1:
bitmap = null;
data.skip(type);
break;
case 3:
var c1 = data.readBeginShaderFill();
var shaderBuffer = c1.obj(0);
bitmap = null;
if(shaderBuffer != null) {
var _g2 = 0;
var _g11 = shaderBuffer.inputCount;
while(_g2 < _g11) {
var i = _g2++;
if(shaderBuffer.inputRefs[i].name == "bitmap") {
bitmap = shaderBuffer.inputs[i];
break;
}
}
}
break;
case 8:
if(bitmap != null) {
var c2 = data.readDrawQuads();
var rects = c2.obj(0);
var indices = c2.obj(1);
var transforms = c2.obj(2);
var hasIndices = indices != null;
var transformABCD = false;
var transformXY = false;
var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4);
if(length == 0) {
return;
}
if(transforms != null) {
if(transforms.get_length() >= length * 6) {
transformABCD = true;
transformXY = true;
} else if(transforms.get_length() >= length * 4) {
transformABCD = true;
} else if(transforms.get_length() >= length * 2) {
transformXY = true;
}
}
var dataPerVertex = 4;
var stride = dataPerVertex * 4;
if(graphics.__quadBuffer == null) {
graphics.__quadBuffer = new (openfl_display__$internal_Context3DBuffer().default)(context,(openfl_display__$internal_Context3DElementType().default).QUADS,length,dataPerVertex);
} else {
graphics.__quadBuffer.resize(quadBufferPosition + length,dataPerVertex);
}
var vertexOffset;
var tileWidth;
var tileHeight;
var uvX;
var uvY;
var uvWidth;
var uvHeight;
var x;
var y;
var x2;
var y2;
var x3;
var y3;
var x4;
var y4;
var ri;
var ti;
var vertexBufferData = graphics.__quadBuffer.vertexBufferData;
var bitmapWidth = bitmap.width;
var bitmapHeight = bitmap.height;
var _g3 = 0;
var _g12 = length;
while(_g3 < _g12) {
var i1 = _g3++;
vertexOffset = (quadBufferPosition + i1) * stride;
ri = hasIndices ? indices[i1] * 4 : i1 * 4;
if(ri < 0) {
continue;
}
tileRect.setTo(rects[ri],rects[ri + 1],rects[ri + 2],rects[ri + 3]);
tileWidth = tileRect.width;
tileHeight = tileRect.height;
if(tileWidth <= 0 || tileHeight <= 0) {
continue;
}
if(transformABCD && transformXY) {
ti = i1 * 6;
tileTransform.setTo(transforms[ti],transforms[ti + 1],transforms[ti + 2],transforms[ti + 3],transforms[ti + 4],transforms[ti + 5]);
} else if(transformABCD) {
ti = i1 * 4;
tileTransform.setTo(transforms[ti],transforms[ti + 1],transforms[ti + 2],transforms[ti + 3],tileRect.x,tileRect.y);
} else if(transformXY) {
ti = i1 * 2;
tileTransform.tx = transforms[ti];
tileTransform.ty = transforms[ti + 1];
} else {
tileTransform.tx = tileRect.x;
tileTransform.ty = tileRect.y;
}
uvX = tileRect.x / bitmapWidth;
uvY = tileRect.y / bitmapHeight;
uvWidth = tileRect.get_right() / bitmapWidth;
uvHeight = tileRect.get_bottom() / bitmapHeight;
x = tileTransform.__transformX(0,0);
y = tileTransform.__transformY(0,0);
x2 = tileTransform.__transformX(tileWidth,0);
y2 = tileTransform.__transformY(tileWidth,0);
x3 = tileTransform.__transformX(0,tileHeight);
y3 = tileTransform.__transformY(0,tileHeight);
x4 = tileTransform.__transformX(tileWidth,tileHeight);
y4 = tileTransform.__transformY(tileWidth,tileHeight);
vertexBufferData[vertexOffset] = x;
vertexBufferData[vertexOffset + 1] = y;
vertexBufferData[vertexOffset + 2] = uvX;
vertexBufferData[vertexOffset + 3] = uvY;
vertexBufferData[vertexOffset + dataPerVertex] = x2;
vertexBufferData[vertexOffset + dataPerVertex + 1] = y2;
vertexBufferData[vertexOffset + dataPerVertex + 2] = uvWidth;
vertexBufferData[vertexOffset + dataPerVertex + 3] = uvY;
vertexBufferData[vertexOffset + dataPerVertex * 2] = x3;
vertexBufferData[vertexOffset + dataPerVertex * 2 + 1] = y3;
vertexBufferData[vertexOffset + dataPerVertex * 2 + 2] = uvX;
vertexBufferData[vertexOffset + dataPerVertex * 2 + 3] = uvHeight;
vertexBufferData[vertexOffset + dataPerVertex * 3] = x4;
vertexBufferData[vertexOffset + dataPerVertex * 3 + 1] = y4;
vertexBufferData[vertexOffset + dataPerVertex * 3 + 2] = uvWidth;
vertexBufferData[vertexOffset + dataPerVertex * 3 + 3] = uvHeight;
}
quadBufferPosition += length;
}
break;
case 12:
var c3 = data.readDrawTriangles();
var vertices = c3.obj(0);
var indices1 = c3.obj(1);
var uvtData = c3.obj(2);
var culling = c3.obj(3);
var hasIndices1 = indices1 != null;
var numVertices = Math.floor(vertices.get_length() / 2);
var length1 = hasIndices1 ? indices1.get_length() : numVertices;
var hasUVData = uvtData != null;
var hasUVTData = hasUVData && uvtData.get_length() >= numVertices * 3;
var vertLength = hasUVTData ? 4 : 2;
var uvStride = hasUVTData ? 3 : 2;
var dataPerVertex1 = vertLength + 2;
var vertexOffset1 = hasUVTData ? vertexBufferPositionUVT : vertexBufferPosition;
Context3DGraphics.resizeVertexBuffer(graphics,hasUVTData,vertexOffset1 + length1 * dataPerVertex1);
var vertexBufferData1 = hasUVTData ? graphics.__vertexBufferDataUVT : graphics.__vertexBufferData;
var offset;
var vertOffset;
var uvOffset;
var t;
var _g4 = 0;
var _g13 = length1;
while(_g4 < _g13) {
var i2 = _g4++;
offset = vertexOffset1 + i2 * dataPerVertex1;
vertOffset = hasIndices1 ? indices1[i2] * 2 : i2 * 2;
uvOffset = hasIndices1 ? indices1[i2] * uvStride : i2 * uvStride;
if(hasUVTData) {
t = uvtData[uvOffset + 2];
vertexBufferData1[offset] = vertices[vertOffset] / t;
vertexBufferData1[offset + 1] = vertices[vertOffset + 1] / t;
vertexBufferData1[offset + 2] = 0;
vertexBufferData1[offset + 3] = 1 / t;
} else {
vertexBufferData1[offset] = vertices[vertOffset];
vertexBufferData1[offset + 1] = vertices[vertOffset + 1];
}
vertexBufferData1[offset + vertLength] = hasUVData ? uvtData[uvOffset] : 0;
vertexBufferData1[offset + vertLength + 1] = hasUVData ? uvtData[uvOffset + 1] : 0;
}
if(hasUVTData) {
vertexBufferPositionUVT += length1 * dataPerVertex1;
} else {
vertexBufferPosition += length1 * dataPerVertex1;
}
break;
case 13:
bitmap = null;
break;
default:
data.skip(type);
}
}
if(quadBufferPosition > 0) {
graphics.__quadBuffer.flushVertexBufferData();
}
if(triangleIndexBufferPosition > 0) {
var buffer = graphics.__triangleIndexBuffer;
if(buffer == null || triangleIndexBufferPosition > graphics.__triangleIndexBufferCount) {
buffer = context.createIndexBuffer(triangleIndexBufferPosition,"dynamicDraw");
graphics.__triangleIndexBuffer = buffer;
graphics.__triangleIndexBufferCount = triangleIndexBufferPosition;
}
buffer.uploadFromTypedArray(graphics.__triangleIndexBufferData);
}
if(vertexBufferPosition > 0) {
var buffer1 = graphics.__vertexBuffer;
if(buffer1 == null || vertexBufferPosition > graphics.__vertexBufferCount) {
buffer1 = context.createVertexBuffer(vertexBufferPosition,4,"dynamicDraw");
graphics.__vertexBuffer = buffer1;
graphics.__vertexBufferCount = vertexBufferPosition;
}
buffer1.uploadFromTypedArray((lime_utils__$Float32Array_Float32Array_$Impl_$().default).toArrayBufferView(graphics.__vertexBufferData));
}
if(vertexBufferPositionUVT > 0) {
var buffer2 = graphics.__vertexBufferUVT;
if(buffer2 == null || vertexBufferPositionUVT > graphics.__vertexBufferCountUVT) {
buffer2 = context.createVertexBuffer(vertexBufferPositionUVT,6,"dynamicDraw");
graphics.__vertexBufferUVT = buffer2;
graphics.__vertexBufferCountUVT = vertexBufferPositionUVT;
}
buffer2.uploadFromTypedArray((lime_utils__$Float32Array_Float32Array_$Impl_$().default).toArrayBufferView(graphics.__vertexBufferDataUVT));
}
(openfl_geom_Rectangle().default).__pool.release(tileRect);
(openfl_geom_Matrix().default).__pool.release(tileTransform);
}
Context3DGraphics.isCompatible = function(graphics) {
if(graphics.__owner.__worldScale9Grid != null) {
return false;
}
var data = new (openfl_display__$internal_DrawCommandReader().default)(graphics.__commands);
var hasColorFill = false;
var hasBitmapFill = false;
var hasShaderFill = false;
var _g = 0;
var _g1 = graphics.__commands.types;
while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:
hasBitmapFill = true;
hasColorFill = false;
hasShaderFill = false;
data.skip(type);
break;
case 1:
hasBitmapFill = false;
hasColorFill = true;
hasShaderFill = false;
data.skip(type);
break;
case 3:
hasBitmapFill = false;
hasColorFill = false;
hasShaderFill = true;
data.skip(type);
break;
case 8:
if(hasBitmapFill || hasShaderFill) {
data.skip(type);
} else {
data.destroy();
return false;
}
break;
case 9:
if(hasColorFill) {
data.skip(type);
} else {
data.destroy();
return false;
}
break;
case 12:
if(hasBitmapFill || hasShaderFill) {
data.skip(type);
} else {
data.destroy();
return false;
}
break;
case 13:
hasBitmapFill = false;
hasColorFill = false;
hasShaderFill = false;
data.skip(type);
break;
case 18:
data.skip(type);
break;
case 19:
data.skip(type);
break;
default:
data.destroy();
return false;
}
}
data.destroy();
return true;
}
Context3DGraphics.render = function(graphics,renderer) {
if(!graphics.__visible || graphics.__commands.get_length() == 0) {
return;
}
if(graphics.__bitmap != null && !graphics.__dirty || !Context3DGraphics.isCompatible(graphics)) {
renderer.__softwareRenderer.__pixelRatio = renderer.__pixelRatio;
var cacheTransform = renderer.__softwareRenderer.__worldTransform;
if(graphics.__owner.__drawableType == 7) {
renderer.__softwareRenderer.__worldTransform = (openfl_geom_Matrix().default).__identity;
} else {
renderer.__softwareRenderer.__worldTransform = renderer.__worldTransform;
}
(openfl_display__$internal_CanvasGraphics().default).render(graphics,renderer.__softwareRenderer);
renderer.__softwareRenderer.__worldTransform = cacheTransform;
} else {
graphics.__bitmap = null;
var pixelRatio = renderer.__pixelRatio;
graphics.__update(renderer.__worldTransform,pixelRatio);
var bounds = graphics.__bounds;
var width = graphics.__width;
var height = graphics.__height;
if(bounds != null && width >= 1 && height >= 1) {
if(graphics.__hardwareDirty || graphics.__quadBuffer == null && graphics.__vertexBuffer == null && graphics.__vertexBufferUVT == null) {
Context3DGraphics.buildBuffer(graphics,renderer);
}
var data = new (openfl_display__$internal_DrawCommandReader().default)(graphics.__commands);
var context = renderer.__context3D;
var gl = context.gl;
var matrix = (openfl_geom_Matrix().default).__pool.get();
var shaderBuffer = null;
var bitmap = null;
var repeat = false;
var smooth = false;
var fill = null;
var positionX = 0.0;
var positionY = 0.0;
var quadBufferPosition = 0;
var shaderBufferOffset = 0;
var triangleIndexBufferPosition = 0;
var vertexBufferPosition = 0;
var vertexBufferPositionUVT = 0;
var _g = 0;
var _g1 = graphics.__commands.types;
while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:
var c = data.readBeginBitmapFill();
bitmap = c.obj(0);
repeat = c.bool(0);
smooth = c.bool(1);
shaderBuffer = null;
fill = null;
break;
case 1:
var c1 = data.readBeginFill();
var color = (Std().default).int(c1.int(0));
var alpha = (Std().default).int(c1.float(0) * 255);
fill = color & 16777215 | alpha << 24;
shaderBuffer = null;
bitmap = null;
break;
case 3:
var c2 = data.readBeginShaderFill();
shaderBuffer = c2.obj(0);
shaderBufferOffset = 0;
if(shaderBuffer == null || shaderBuffer.shader == null || shaderBuffer.shader.__bitmap == null) {
bitmap = null;
} else {
bitmap = shaderBuffer.shader.__bitmap.input;
}
fill = null;
break;
case 8:
if(bitmap != null) {
var c3 = data.readDrawQuads();
var rects = c3.obj(0);
var indices = c3.obj(1);
var transforms = c3.obj(2);
var hasIndices = indices != null;
var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4);
var uMatrix = renderer.__getMatrix(graphics.__owner.__renderTransform,"auto");
var shader;
if(shaderBuffer != null && !Context3DGraphics.maskRender) {
shader = renderer.__initShaderBuffer(shaderBuffer);
renderer.__setShaderBuffer(shaderBuffer);
renderer.applyMatrix(uMatrix);
renderer.applyBitmapData(bitmap,false,repeat);
renderer.applyAlpha(graphics.__owner.__worldAlpha);
renderer.applyColorTransform(graphics.__owner.__worldColorTransform);
} else {
shader = Context3DGraphics.maskRender ? renderer.__maskShader : renderer.__initGraphicsShader(null);
renderer.setShader(shader);
renderer.applyMatrix(uMatrix);
renderer.applyBitmapData(bitmap,smooth,repeat);
renderer.applyAlpha(graphics.__owner.__worldAlpha);
renderer.applyColorTransform(graphics.__owner.__worldColorTransform);
renderer.updateShader();
}
var end = quadBufferPosition + length;
while(quadBufferPosition < end) {
length = (Std().default).int(Math.min(end - quadBufferPosition,context.__quadIndexBufferElements));
if(length <= 0) {
break;
}
if(shaderBuffer != null && !Context3DGraphics.maskRender) {
renderer.__updateShaderBuffer(shaderBufferOffset);
}
if(shader.__position != null) {
context.setVertexBufferAt(shader.__position.index,graphics.__quadBuffer.vertexBuffer,quadBufferPosition * 16,"float2");
}
if(shader.__textureCoord != null) {
context.setVertexBufferAt(shader.__textureCoord.index,graphics.__quadBuffer.vertexBuffer,quadBufferPosition * 16 + 2,"float2");
}
context.drawTriangles(context.__quadIndexBuffer,0,length * 2);
shaderBufferOffset += length * 4;
quadBufferPosition += length;
}
renderer.__clearShader();
}
break;
case 9:
if(fill != null) {
var c4 = data.readDrawRect();
var x = c4.float(0);
var y = c4.float(1);
var width1 = c4.float(2);
var height1 = c4.float(3);
var color1 = fill;
Context3DGraphics.tempColorTransform.redOffset = color1 >>> 16 & 255;
Context3DGraphics.tempColorTransform.greenOffset = color1 >>> 8 & 255;
Context3DGraphics.tempColorTransform.blueOffset = color1 & 255;
Context3DGraphics.tempColorTransform.__combine(graphics.__owner.__worldColorTransform);
matrix.identity();
matrix.scale(width1,height1);
matrix.tx = x;
matrix.ty = y;
matrix.concat(graphics.__owner.__renderTransform);
var shader1 = Context3DGraphics.maskRender ? renderer.__maskShader : renderer.__initGraphicsShader(null);
renderer.setShader(shader1);
renderer.applyMatrix(renderer.__getMatrix(matrix,"auto"));
renderer.applyBitmapData(Context3DGraphics.blankBitmapData,true,repeat);
renderer.applyAlpha((color1 >>> 24 & 255) / 255 * graphics.__owner.__worldAlpha);
renderer.applyColorTransform(Context3DGraphics.tempColorTransform);
renderer.updateShader();
var vertexBuffer = Context3DGraphics.blankBitmapData.getVertexBuffer(context);
if(shader1.__position != null) {
context.setVertexBufferAt(shader1.__position.index,vertexBuffer,0,"float3");
}
if(shader1.__textureCoord != null) {
context.setVertexBufferAt(shader1.__textureCoord.index,vertexBuffer,3,"float2");
}
var indexBuffer = Context3DGraphics.blankBitmapData.getIndexBuffer(context);
context.drawTriangles(indexBuffer);
shaderBufferOffset += 4;
renderer.__clearShader();
}
break;
case 12:
var c5 = data.readDrawTriangles();
var vertices = c5.obj(0);
var indices1 = c5.obj(1);
var uvtData = c5.obj(2);
var culling = c5.obj(3);
var hasIndices1 = indices1 != null;
var numVertices = Math.floor(vertices.get_length() / 2);
var length1 = hasIndices1 ? indices1.get_length() : numVertices;
var hasUVData = uvtData != null;
var hasUVTData = hasUVData && uvtData.get_length() >= numVertices * 3;
var vertLength = hasUVTData ? 4 : 2;
var uvStride = hasUVTData ? 3 : 2;
var dataPerVertex = vertLength + 2;
var vertexBuffer1 = hasUVTData ? graphics.__vertexBufferUVT : graphics.__vertexBuffer;
var bufferPosition = hasUVTData ? vertexBufferPositionUVT : vertexBufferPosition;
var uMatrix1 = renderer.__getMatrix(graphics.__owner.__renderTransform,"auto");
var shader2;
if(shaderBuffer != null && !Context3DGraphics.maskRender) {
shader2 = renderer.__initShaderBuffer(shaderBuffer);
renderer.__setShaderBuffer(shaderBuffer);
renderer.applyMatrix(uMatrix1);
renderer.applyBitmapData(bitmap,false,repeat);
renderer.applyAlpha(1);
renderer.applyColorTransform(null);
renderer.__updateShaderBuffer(shaderBufferOffset);
} else {
shader2 = Context3DGraphics.maskRender ? renderer.__maskShader : renderer.__initGraphicsShader(null);
renderer.setShader(shader2);
renderer.applyMatrix(uMatrix1);
renderer.applyBitmapData(bitmap,smooth,repeat);
renderer.applyAlpha(graphics.__owner.__worldAlpha);
renderer.applyColorTransform(graphics.__owner.__worldColorTransform);
renderer.updateShader();
}
if(shader2.__position != null) {
context.setVertexBufferAt(shader2.__position.index,vertexBuffer1,bufferPosition,hasUVTData ? "float4" : "float2");
}
if(shader2.__textureCoord != null) {
context.setVertexBufferAt(shader2.__textureCoord.index,vertexBuffer1,bufferPosition + vertLength,"float2");
}
switch(culling) {
case "negative":
context.setCulling("back");
break;
case "none":
context.setCulling("none");
break;
case "positive":
context.setCulling("front");
break;
default:
}
context.__drawTriangles(0,length1);
shaderBufferOffset += length1;
if(hasUVTData) {
vertexBufferPositionUVT += dataPerVertex * length1;
} else {
vertexBufferPosition += dataPerVertex * length1;
}
switch(culling) {
case "none":case "positive":
context.setCulling("back");
break;
default:
}
renderer.__clearShader();
break;
case 13:
bitmap = null;
fill = null;
shaderBuffer = null;
data.skip(type);
context.setCulling("none");
break;
case 18:
var c6 = data.readMoveTo();
positionX = c6.float(0);
positionY = c6.float(1);
break;
case 19:
var c7 = data.readOverrideBlendMode();
renderer.__setBlendMode(c7.obj(0));
break;
default:
data.skip(type);
}
}
(openfl_geom_Matrix().default).__pool.release(matrix);
}
graphics.__hardwareDirty = false;
graphics.set___dirty(false);
}
}
Context3DGraphics.renderMask = function(graphics,renderer) {
Context3DGraphics.maskRender = true;
Context3DGraphics.render(graphics,renderer);
Context3DGraphics.maskRender = false;
}
Context3DGraphics.resizeIndexBuffer = function(graphics,isQuad,length) {
if(isQuad) {
return;
}
var buffer = isQuad ? null : graphics.__triangleIndexBufferData;
var position = 0;
var newBuffer = null;
if(buffer == null) {
var array = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(length != null) {
this1 = new Uint16Array(length);
} else if(array != null) {
this1 = new Uint16Array(array);
} else if(view != null) {
this1 = new Uint16Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint16Array(buffer1,0);
} else {
this1 = new Uint16Array(buffer1,0,len);
}
} else {
this1 = null;
}
newBuffer = this1;
} else if(length > buffer.length) {
var array1 = null;
var view1 = null;
var buffer2 = null;
var len1 = null;
var this2;
if(length != null) {
this2 = new Uint16Array(length);
} else if(array1 != null) {
this2 = new Uint16Array(array1);
} else if(view1 != null) {
this2 = new Uint16Array(view1);
} else if(buffer2 != null) {
if(len1 == null) {
this2 = new Uint16Array(buffer2,0);
} else {
this2 = new Uint16Array(buffer2,0,len1);
}
} else {
this2 = null;
}
newBuffer = this2;
newBuffer.set(buffer);
position = buffer.length;
}
if(newBuffer != null) {
if(!isQuad) {
graphics.__triangleIndexBufferData = newBuffer;
}
}
}
Context3DGraphics.resizeVertexBuffer = function(graphics,hasUVTData,length) {
var buffer = hasUVTData ? graphics.__vertexBufferDataUVT : graphics.__vertexBufferData;
var newBuffer = null;
if(buffer == null) {
var array = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(length != null) {
this1 = new Float32Array(length);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Float32Array(buffer1,0);
} else {
this1 = new Float32Array(buffer1,0,len);
}
} else {
this1 = null;
}
newBuffer = this1;
} else if(length > buffer.length) {
var array1 = null;
var view1 = null;
var buffer2 = null;
var len1 = null;
var this2;
if(length != null) {
this2 = new Float32Array(length);
} else if(array1 != null) {
this2 = new Float32Array(array1);
} else if(view1 != null) {
this2 = new Float32Array(view1);
} else if(buffer2 != null) {
if(len1 == null) {
this2 = new Float32Array(buffer2,0);
} else {
this2 = new Float32Array(buffer2,0,len1);
}
} else {
this2 = null;
}
newBuffer = this2;
newBuffer.set(buffer);
}
if(newBuffer != null) {
if(hasUVTData) {
graphics.__vertexBufferDataUVT = newBuffer;
} else {
graphics.__vertexBufferData = newBuffer;
}
}
}
Context3DGraphics.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}
Context3DGraphics.blankBitmapData = new (openfl_display_BitmapData().default)(1,1,false,0)
Context3DGraphics.tempColorTransform = new (openfl_geom_ColorTransform().default)(1,1,1,1,0,0,0,0)
// Export
exports.default = Context3DGraphics;