فهرست منبع

Added more usesys (#349)

Pascal Peridont 7 سال پیش
والد
کامیت
bdaf68f6e4
4فایلهای تغییر یافته به همراه14 افزوده شده و 4 حذف شده
  1. 2 0
      h3d/Engine.hx
  2. 6 0
      h3d/impl/Driver.hx
  3. 2 0
      h3d/mat/Texture.hx
  4. 4 4
      hxd/System.hl.hx

+ 2 - 0
h3d/Engine.hx

@@ -68,6 +68,8 @@ class Engine {
 		driver = new h3d.impl.Stage3dDriver(antiAlias);
 		#elseif hldx
 		driver = new h3d.impl.DirectXDriver();
+		#elseif usesys
+		driver = new haxe.GraphicsDriver(antiAlias);
 		#else
 		#if sys Sys.println #else trace #end("No output driver available.");
 		driver = new h3d.impl.LogDriver(new h3d.impl.NullDriver());

+ 6 - 0
h3d/impl/Driver.hx

@@ -42,6 +42,12 @@ typedef VertexBuffer = { res : dx.Resource, count : Int, stride : Int };
 typedef Texture = { res : dx.Resource, view : dx.Driver.ShaderResourceView, rt : Array<dx.Driver.RenderTargetView>, mips : Int };
 typedef DepthBuffer = { res : dx.Resource, view : dx.Driver.DepthStencilView };
 typedef Query = {};
+#elseif usesys
+typedef IndexBuffer = haxe.GraphicsDriver.IndexBuffer;
+typedef VertexBuffer = haxe.GraphicsDriver.VertexBuffer;
+typedef Texture = haxe.GraphicsDriver.Texture;
+typedef DepthBuffer = haxe.GraphicsDriver.DepthBuffer;
+typedef Query = haxe.GraphicsDriver.Query;
 #else
 typedef IndexBuffer = {};
 typedef VertexBuffer = {};

+ 2 - 0
h3d/mat/Texture.hx

@@ -12,6 +12,8 @@ class Texture {
 	public static var nativeFormat(default,never) : TextureFormat =
 		#if flash
 			BGRA
+		#elseif (usesys && !hldx && !hlsdl && !usegl)
+			haxe.GraphicsDriver.nativeFormat
 		#else
 			RGBA // OpenGL, WebGL
 		#end;

+ 4 - 4
hxd/System.hl.hx

@@ -53,15 +53,15 @@ class System {
 
 	static function mainLoop() : Bool {
 		// process events
-		#if hldx
+		#if usesys
+		if( !haxe.System.emitEvents(@:privateAccess hxd.Stage.inst.event) )
+			return false;
+		#elseif hldx
 		if( !dx.Loop.processEvents(@:privateAccess hxd.Stage.inst.onEvent) )
 			return false;
 		#elseif hlsdl
 		if( !sdl.Sdl.processEvents(@:privateAccess hxd.Stage.inst.onEvent) )
 			return false;
-		#elseif usesys
-		if( !haxe.System.emitEvents(@:privateAccess hxd.Stage.inst.event) )
-			return false;
 		#end
 
 		// loop