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;
 | |
| 	}
 | |
| }
 |