56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| package kha.kore.graphics5;
 | |
| 
 | |
| import kha.graphics5.RenderTarget;
 | |
| import kha.graphics5.CommandList;
 | |
| #if kha_dxr
 | |
| import kha.graphics5.AccelerationStructure;
 | |
| import kha.graphics5.RayTraceTarget;
 | |
| import kha.graphics5.RayTracePipeline;
 | |
| #end
 | |
| 
 | |
| @:headerCode('
 | |
| #include <Kore/Graphics5/Graphics.h>
 | |
| #include <Kore/Graphics5/RayTrace.h>
 | |
| ')
 | |
| class Graphics implements kha.graphics5.Graphics {
 | |
| 	private var target: Canvas;
 | |
| 
 | |
| 	public function new(target: Canvas = null) {
 | |
| 		this.target = target;
 | |
| 	}
 | |
| 
 | |
| 	public function begin(target: RenderTarget): Void {
 | |
| 		untyped __cpp__("Kore::Graphics5::begin(target->renderTarget);");
 | |
| 	}
 | |
| 
 | |
| 	public function end(): Void {
 | |
| 		untyped __cpp__("Kore::Graphics5::end();");
 | |
| 	}
 | |
| 
 | |
| 	public function swapBuffers(): Void {
 | |
| 		untyped __cpp__("Kore::Graphics5::swapBuffers();");
 | |
| 	}
 | |
| 
 | |
| 	#if kha_dxr
 | |
| 	public function setAccelerationStructure(accel: AccelerationStructure): Void {
 | |
| 		untyped __cpp__("Kore::Graphics5::setAccelerationStructure(accel->accel);");
 | |
| 	}
 | |
| 
 | |
| 	public function setRayTracePipeline(pipe: RayTracePipeline): Void {
 | |
| 		untyped __cpp__("Kore::Graphics5::setRayTracePipeline(pipe->pipeline);");
 | |
| 	}
 | |
| 
 | |
| 	public function setRayTraceTarget(target: RayTraceTarget): Void {
 | |
| 		untyped __cpp__("Kore::Graphics5::setRayTraceTarget(target->target);");
 | |
| 	}
 | |
| 
 | |
| 	public function dispatchRays(commandList: CommandList): Void {
 | |
| 		untyped __cpp__("Kore::Graphics5::dispatchRays(commandList->commandList);");
 | |
| 	}
 | |
| 
 | |
| 	public function copyRayTraceTarget(commandList: CommandList, renderTarget: RenderTarget, output: RayTraceTarget): Void {
 | |
| 		untyped __cpp__("Kore::Graphics5::copyRayTraceTarget(commandList->commandList, renderTarget->renderTarget, output->target);");
 | |
| 	}
 | |
| 	#end
 | |
| }
 |