36 lines
		
	
	
		
			953 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			953 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| package kha.graphics4;
 | |
| 
 | |
| import haxe.io.Bytes;
 | |
| import kha.Blob;
 | |
| 
 | |
| @:headerCode("
 | |
| #include <kinc/graphics4/shader.h>
 | |
| ")
 | |
| @:headerClassCode("kinc_g4_shader_t shader;")
 | |
| class VertexShader {
 | |
| 	public function new(sources: Array<Blob>, files: Array<String>) {
 | |
| 		if (sources != null) {
 | |
| 			init(sources[0], files[0]);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	function init(source: Blob, file: String): Void {
 | |
| 		untyped __cpp__("kinc_g4_shader_init(&shader, source->bytes->b->Pointer(), source->get_length(), KINC_G4_SHADER_TYPE_VERTEX);");
 | |
| 	}
 | |
| 
 | |
| 	public static function fromSource(source: String): VertexShader {
 | |
| 		var vertexShader = new VertexShader(null, null);
 | |
| 		untyped __cpp__("kinc_g4_shader_init_from_source(&vertexShader->shader, source, KINC_G4_SHADER_TYPE_VERTEX);");
 | |
| 		return vertexShader;
 | |
| 	}
 | |
| 
 | |
| 	public function delete(): Void {
 | |
| 		untyped __cpp__("kinc_g4_shader_destroy(&shader);");
 | |
| 	}
 | |
| 
 | |
| 	@:keep
 | |
| 	function _forceInclude(): Void {
 | |
| 		Bytes.alloc(0);
 | |
| 	}
 | |
| }
 |