forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			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; | ||
|  | 	} | ||
|  | } |