UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

130 lines (112 loc) 3.71 kB
// Class: openfl.display3D.IndexBuffer3D 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_utils__$ByteArray_ByteArray_$Impl_$() {return require("./../../openfl/utils/_ByteArray/ByteArray_Impl_");} function lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$() {return require("./../../lime/graphics/_WebGLRenderContext/WebGLRenderContext_Impl_");} // Constructor var IndexBuffer3D = function(context3D,numIndices,bufferUsage) { this.__context = context3D; this.__numIndices = numIndices; var gl = this.__context.gl; this.__id = gl.createBuffer(); this.__usage = bufferUsage == "dynamicDraw" ? gl.DYNAMIC_DRAW : gl.STATIC_DRAW; } // Meta IndexBuffer3D.__name__ = "openfl.display3D.IndexBuffer3D"; IndexBuffer3D.__isInterface__ = false; IndexBuffer3D.prototype = { dispose: function() { var gl = this.__context.gl; gl.deleteBuffer(this.__id); }, uploadFromByteArray: function(data,byteArrayOffset,startOffset,count) { var offset = byteArrayOffset + startOffset * 2; var elements = null; var array = null; var view = null; var buffer = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toArrayBuffer(data); var byteoffset = offset; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint16Array(elements); } else if(array != null) { this1 = new Uint16Array(array); } else if(view != null) { this1 = new Uint16Array(view); } else if(buffer != null) { if(count == null) { this1 = new Uint16Array(buffer,byteoffset); } else { this1 = new Uint16Array(buffer,byteoffset,count); } } else { this1 = null; } this.uploadFromTypedArray(this1); }, uploadFromTypedArray: function(data,byteLength) { if(byteLength == null) { byteLength = -1; } if(data == null) { return; } var gl = this.__context.gl; this.__context.__bindGLElementArrayBuffer(this.__id); (lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$().default).bufferData(gl,gl.ELEMENT_ARRAY_BUFFER,data,this.__usage); }, uploadFromVector: function(data,startOffset,count) { if(data == null) { return; } var gl = this.__context.gl; var length = startOffset + count; var existingUInt16Array = this.__tempUInt16Array; if(this.__tempUInt16Array == null || this.__tempUInt16Array.length < count) { var array = null; var view = null; var buffer = null; var len = null; var this1; if(count != null) { this1 = new Uint16Array(count); } else if(array != null) { this1 = new Uint16Array(array); } else if(view != null) { this1 = new Uint16Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint16Array(buffer,0); } else { this1 = new Uint16Array(buffer,0,len); } } else { this1 = null; } this.__tempUInt16Array = this1; if(existingUInt16Array != null) { this.__tempUInt16Array.set(existingUInt16Array); } } var _g = startOffset; var _g1 = length; while(_g < _g1) { var i = _g++; this.__tempUInt16Array[i - startOffset] = data[i]; } this.uploadFromTypedArray(this.__tempUInt16Array); } }; IndexBuffer3D.prototype.__class__ = IndexBuffer3D.prototype.constructor = $hxClasses["openfl.display3D.IndexBuffer3D"] = IndexBuffer3D; // Init // Statics // Export exports.default = IndexBuffer3D;