45 lines
976 B
Haxe
45 lines
976 B
Haxe
package kha.graphics4;
|
|
|
|
import kha.arrays.Float32Array;
|
|
import kha.graphics4.Usage;
|
|
import kha.graphics4.VertexStructure;
|
|
import kha.graphics4.VertexData;
|
|
|
|
class VertexBuffer {
|
|
var data: Float32Array;
|
|
var mySize: Int;
|
|
var myStride: Int;
|
|
|
|
public function new(vertexCount: Int, structure: VertexStructure, usage: Usage, instanceDataStepRate: Int = 0, canRead: Bool = false) {
|
|
mySize = vertexCount;
|
|
myStride = 0;
|
|
for (element in structure.elements) {
|
|
myStride += VertexData.getStride(element.data);
|
|
}
|
|
|
|
data = new Float32Array(Std.int(vertexCount * myStride / 4));
|
|
}
|
|
|
|
public function delete(): Void {
|
|
data = null;
|
|
}
|
|
|
|
public function lock(?start: Int, ?count: Int): Float32Array {
|
|
return data;
|
|
}
|
|
|
|
public function unlock(?count: Int): Void {}
|
|
|
|
public function stride(): Int {
|
|
return myStride;
|
|
}
|
|
|
|
public function count(): Int {
|
|
return mySize;
|
|
}
|
|
|
|
public function set(offset: Int): Int {
|
|
return 0;
|
|
}
|
|
}
|