// Class: openfl.display3D.VertexBuffer3D

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 $import = require("./../../import_stub").default;
function openfl__$internal_stage3D_opengl_GLVertexBuffer3D() {return require("./../../openfl/_internal/stage3D/opengl/GLVertexBuffer3D");}

// Constructor

var VertexBuffer3D = function(context3D,numVertices,dataPerVertex,bufferUsage) {
	this.__context = context3D;
	this.__numVertices = numVertices;
	this.__vertexSize = dataPerVertex;
	(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).create(this,this.__context.__renderer,bufferUsage);
}

// Meta

VertexBuffer3D.__name__ = ["openfl","display3D","VertexBuffer3D"];
VertexBuffer3D.prototype = {
	dispose: function() {
		(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).dispose(this,this.__context.__renderer);
	},
	uploadFromByteArray: function(data,byteArrayOffset,startVertex,numVertices) {
		(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).uploadFromByteArray(this,this.__context.__renderer,data,byteArrayOffset,startVertex,numVertices);
	},
	uploadFromTypedArray: function(data,byteLength) {
		if(byteLength == null) {
			byteLength = -1;
		}
		(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).uploadFromTypedArray(this,this.__context.__renderer,data);
	},
	uploadFromVector: function(data,startVertex,numVertices) {
		(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).uploadFromVector(this,this.__context.__renderer,data,startVertex,numVertices);
	}
};
VertexBuffer3D.prototype.__class__ = $hxClasses["openfl.display3D.VertexBuffer3D"] = VertexBuffer3D;

// Init



// Statics




// Export

exports.default = VertexBuffer3D;