43 lines
		
	
	
		
			907 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			907 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
package kha.graphics4;
 | 
						|
 | 
						|
import kha.arrays.Uint32Array;
 | 
						|
import kha.graphics4.Usage;
 | 
						|
 | 
						|
class IndexBuffer {
 | 
						|
	public var _data: Uint32Array;
 | 
						|
 | 
						|
	var buffer: Dynamic;
 | 
						|
	var indexCount: Int;
 | 
						|
 | 
						|
	public function new(indexCount: Int, usage: Usage, canRead: Bool = false) {
 | 
						|
		this.indexCount = indexCount;
 | 
						|
		buffer = Krom.createIndexBuffer(indexCount);
 | 
						|
	}
 | 
						|
 | 
						|
	public function delete() {
 | 
						|
		Krom.deleteIndexBuffer(buffer);
 | 
						|
		buffer = null;
 | 
						|
	}
 | 
						|
 | 
						|
	public function lock(?start: Int, ?count: Int): Uint32Array {
 | 
						|
		_data = Krom.lockIndexBuffer(buffer);
 | 
						|
		if (start == null)
 | 
						|
			start = 0;
 | 
						|
		if (count == null)
 | 
						|
			count = indexCount;
 | 
						|
		return _data.subarray(start, start + count);
 | 
						|
	}
 | 
						|
 | 
						|
	public function unlock(?count: Int): Void {
 | 
						|
		Krom.unlockIndexBuffer(buffer);
 | 
						|
	}
 | 
						|
 | 
						|
	public function set(): Void {
 | 
						|
		Krom.setIndexBuffer(buffer);
 | 
						|
	}
 | 
						|
 | 
						|
	public function count(): Int {
 | 
						|
		return indexCount;
 | 
						|
	}
 | 
						|
}
 |