浏览代码

dx buffers

Nicolas Cannasse 8 年之前
父节点
当前提交
e86f2e5f75
共有 2 个文件被更改,包括 25 次插入0 次删除
  1. 19 0
      h3d/impl/DirectXDriver.hx
  2. 6 0
      h3d/impl/Driver.hx

+ 19 - 0
h3d/impl/DirectXDriver.hx

@@ -35,4 +35,23 @@ class DirectXDriver extends h3d.impl.Driver {
 		Driver.present();
 		Driver.present();
 	}
 	}
 
 
+	override function allocVertexes(m:ManagedBuffer):VertexBuffer {
+		return dx.Buffer.alloc(m.size * m.stride, Default, VertexBuffer, None, None, m.stride, null);
+	}
+
+	override function allocIndexes( count : Int ) : IndexBuffer {
+		return dx.Buffer.alloc(count << 1, Default, IndexBuffer, None, None, 2, null);
+	}
+
+	override function disposeVertexes(v:VertexBuffer) {
+		v.release();
+	}
+
+	override function disposeIndexes(i:IndexBuffer) {
+		i.release();
+	}
+
+	override function selectShader(shader:hxsl.RuntimeShader) {
+	}
+
 }
 }

+ 6 - 0
h3d/impl/Driver.hx

@@ -36,6 +36,12 @@ typedef VertexBuffer = { b : psgl.GL.Buffer, stride : Int };
 typedef Texture = { t : psgl.GL.Texture, width : Int, height : Int, internalFmt : Int, pixelFmt : Int, bits : Int };
 typedef Texture = { t : psgl.GL.Texture, width : Int, height : Int, internalFmt : Int, pixelFmt : Int, bits : Int };
 typedef DepthBuffer = { r : psgl.GL.Renderbuffer };
 typedef DepthBuffer = { r : psgl.GL.Renderbuffer };
 typedef Query = { q : psgl.GL.Query, kind : QueryKind };
 typedef Query = { q : psgl.GL.Query, kind : QueryKind };
+#elseif hldx
+typedef IndexBuffer = dx.Buffer;
+typedef VertexBuffer = dx.Buffer;
+typedef Texture = {};
+typedef DepthBuffer = {};
+typedef Query = {};
 #else
 #else
 typedef IndexBuffer = {};
 typedef IndexBuffer = {};
 typedef VertexBuffer = {};
 typedef VertexBuffer = {};