Pārlūkot izejas kodu

added NullDriver by default

Nicolas Cannasse 9 gadi atpakaļ
vecāks
revīzija
1ed26350e7
2 mainītis faili ar 56 papildinājumiem un 1 dzēšanām
  1. 2 1
      h3d/Engine.hx
  2. 54 0
      h3d/impl/NullDriver.hx

+ 2 - 1
h3d/Engine.hx

@@ -58,7 +58,8 @@ class Engine {
 		#elseif flash
 		driver = new h3d.impl.Stage3dDriver();
 		#else
-		throw "No driver";
+		driver = new h3d.impl.LogDriver(new h3d.impl.NullDriver());
+		driver.logEnable = true;
 		#end
 		setCurrent();
 	}

+ 54 - 0
h3d/impl/NullDriver.hx

@@ -0,0 +1,54 @@
+package h3d.impl;
+import h3d.impl.Driver;
+
+class NullDriver extends Driver {
+
+	var cur : hxsl.RuntimeShader;
+	
+	public function new() {
+	}
+
+	override function hasFeature( f : Feature ) {
+		return true;
+	}
+
+	override function isSupportedFormat( fmt : h3d.mat.Data.TextureFormat ) {
+		return true;
+	}
+
+	override function isDisposed() {
+		return false;
+	}
+
+	override function getDriverName( details : Bool ) {
+		return "NullDriver";
+	}
+
+	override function init( onCreate : Bool -> Void, forceSoftware = false ) {
+		onCreate(false);
+	}
+
+	override function selectShader( shader : hxsl.RuntimeShader ) {
+		if( cur == shader ) return false;
+		cur = shader;
+		return true;
+	}
+
+	override function getShaderInputNames() : Array<String> {
+		throw "TODO:getShaderInputNames";
+		return null;
+	}
+
+	override function allocTexture( t : h3d.mat.Texture ) : Texture {
+		return {};
+	}
+
+	override function allocIndexes( count : Int ) : IndexBuffer {
+		return {};
+	}
+
+	override function allocVertexes( m : ManagedBuffer ) : VertexBuffer {
+		return {};
+	}
+
+}