50 lines
1.4 KiB
Haxe
50 lines
1.4 KiB
Haxe
|
package kha.graphics4;
|
||
|
|
||
|
import haxe.io.Bytes;
|
||
|
import haxe.io.BytesData;
|
||
|
|
||
|
class IndexBuffer {
|
||
|
public var _buffer: Pointer;
|
||
|
|
||
|
var myCount: Int;
|
||
|
|
||
|
public function new(indexCount: Int, usage: Usage, canRead: Bool = false) {
|
||
|
myCount = indexCount;
|
||
|
_buffer = kinc_create_indexbuffer(indexCount);
|
||
|
}
|
||
|
|
||
|
public function delete() {
|
||
|
kinc_delete_indexbuffer(_buffer);
|
||
|
}
|
||
|
|
||
|
public function lock(?start: Int, ?count: Int): kha.arrays.Uint32Array {
|
||
|
if (start == null)
|
||
|
start = 0;
|
||
|
if (count == null)
|
||
|
count = this.count();
|
||
|
return cast new kha.arrays.ByteArray(kinc_indexbuffer_lock(_buffer, start, count), 0, count * 4);
|
||
|
}
|
||
|
|
||
|
public function unlock(?count: Int): Void {
|
||
|
if (count == null)
|
||
|
count = this.count();
|
||
|
kinc_indexbuffer_unlock(_buffer, count);
|
||
|
}
|
||
|
|
||
|
public function count(): Int {
|
||
|
return myCount;
|
||
|
}
|
||
|
|
||
|
@:hlNative("std", "kinc_create_indexbuffer") static function kinc_create_indexbuffer(count: Int): Pointer {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
@:hlNative("std", "kinc_delete_indexbuffer") static function kinc_delete_indexbuffer(buffer: Pointer): Void {}
|
||
|
|
||
|
@:hlNative("std", "kinc_indexbuffer_lock") static function kinc_indexbuffer_lock(buffer: Pointer, start: Int, count: Int): hl.Bytes {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
@:hlNative("std", "kinc_indexbuffer_unlock") static function kinc_indexbuffer_unlock(buffer: Pointer, count: Int): Void {}
|
||
|
}
|