[AMSTREAM] We don't need to define WIDL_C_INLINE_WRAPPERS here anymore.
[reactos.git] / dll / directx / wine / d3d9 / shader.c
index 94ec829..75dfc0f 100644 (file)
@@ -133,14 +133,23 @@ static const struct wined3d_parent_ops d3d9_vertexshader_wined3d_parent_ops =
 
 HRESULT vertexshader_init(struct d3d9_vertexshader *shader, struct d3d9_device *device, const DWORD *byte_code)
 {
+    struct wined3d_shader_desc desc;
     HRESULT hr;
 
     shader->refcount = 1;
     shader->IDirect3DVertexShader9_iface.lpVtbl = &d3d9_vertexshader_vtbl;
 
+    desc.byte_code = byte_code;
+    desc.byte_code_size = ~(size_t)0;
+    desc.format = WINED3D_SHADER_BYTE_CODE_FORMAT_SM1;
+    desc.input_signature.element_count = 0;
+    desc.output_signature.element_count = 0;
+    desc.patch_constant_signature.element_count = 0;
+    desc.max_version = 3;
+
     wined3d_mutex_lock();
-    hr = wined3d_shader_create_vs(device->wined3d_device, byte_code, NULL,
-            shader, &d3d9_vertexshader_wined3d_parent_ops, &shader->wined3d_shader, 3);
+    hr = wined3d_shader_create_vs(device->wined3d_device, &desc, shader,
+            &d3d9_vertexshader_wined3d_parent_ops, &shader->wined3d_shader);
     wined3d_mutex_unlock();
     if (FAILED(hr))
     {
@@ -158,7 +167,8 @@ struct d3d9_vertexshader *unsafe_impl_from_IDirect3DVertexShader9(IDirect3DVerte
 {
     if (!iface)
         return NULL;
-    assert(iface->lpVtbl == &d3d9_vertexshader_vtbl);
+    if (iface->lpVtbl != &d3d9_vertexshader_vtbl)
+        WARN("Vertex shader %p with the wrong vtbl %p\n", iface, iface->lpVtbl);
 
     return impl_from_IDirect3DVertexShader9(iface);
 }
@@ -277,14 +287,23 @@ static const struct wined3d_parent_ops d3d9_pixelshader_wined3d_parent_ops =
 
 HRESULT pixelshader_init(struct d3d9_pixelshader *shader, struct d3d9_device *device, const DWORD *byte_code)
 {
+    struct wined3d_shader_desc desc;
     HRESULT hr;
 
     shader->refcount = 1;
     shader->IDirect3DPixelShader9_iface.lpVtbl = &d3d9_pixelshader_vtbl;
 
+    desc.byte_code = byte_code;
+    desc.byte_code_size = ~(size_t)0;
+    desc.format = WINED3D_SHADER_BYTE_CODE_FORMAT_SM1;
+    desc.input_signature.element_count = 0;
+    desc.output_signature.element_count = 0;
+    desc.patch_constant_signature.element_count = 0;
+    desc.max_version = 3;
+
     wined3d_mutex_lock();
-    hr = wined3d_shader_create_ps(device->wined3d_device, byte_code, NULL, shader,
-            &d3d9_pixelshader_wined3d_parent_ops, &shader->wined3d_shader, 3);
+    hr = wined3d_shader_create_ps(device->wined3d_device, &desc, shader,
+            &d3d9_pixelshader_wined3d_parent_ops, &shader->wined3d_shader);
     wined3d_mutex_unlock();
     if (FAILED(hr))
     {
@@ -302,7 +321,8 @@ struct d3d9_pixelshader *unsafe_impl_from_IDirect3DPixelShader9(IDirect3DPixelSh
 {
     if (!iface)
         return NULL;
-    assert(iface->lpVtbl == &d3d9_pixelshader_vtbl);
+    if (iface->lpVtbl != &d3d9_pixelshader_vtbl)
+        WARN("Pixel shader %p with the wrong vtbl %p\n", iface, iface->lpVtbl);
 
     return impl_from_IDirect3DPixelShader9(iface);
 }