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