Rico Schüller : d3d10: Make the constant buffer a variable.
Alexandre Julliard
julliard at winehq.org
Wed Sep 30 10:56:10 CDT 2009
Module: wine
Branch: master
Commit: df9e1013d558e8bf34e2b992d9d2aa5e04e9c685
URL: http://source.winehq.org/git/wine.git/?a=commit;h=df9e1013d558e8bf34e2b992d9d2aa5e04e9c685
Author: Rico Schüller <kgbricola at web.de>
Date: Wed Sep 30 11:40:38 2009 +0200
d3d10: Make the constant buffer a variable.
---
dlls/d3d10/d3d10_private.h | 15 ++-------------
dlls/d3d10/effect.c | 32 ++++++++++++++++----------------
2 files changed, 18 insertions(+), 29 deletions(-)
diff --git a/dlls/d3d10/d3d10_private.h b/dlls/d3d10/d3d10_private.h
index ae4d6f2..62ce904 100644
--- a/dlls/d3d10/d3d10_private.h
+++ b/dlls/d3d10/d3d10_private.h
@@ -90,7 +90,7 @@ struct d3d10_effect_variable
{
const struct ID3D10EffectVariableVtbl *vtbl;
- struct d3d10_effect_local_buffer *buffer;
+ struct d3d10_effect_variable *buffer;
struct d3d10_effect *effect;
char *name;
@@ -98,18 +98,7 @@ struct d3d10_effect_variable
DWORD buffer_offset;
DWORD annotation_count;
DWORD flag;
- struct d3d10_effect_type *type;
- struct d3d10_effect_variable *annotations;
-};
-
-struct d3d10_effect_local_buffer
-{
- const struct ID3D10EffectConstantBufferVtbl *vtbl;
-
- struct d3d10_effect *effect;
- char *name;
DWORD data_size;
- DWORD annotation_count;
struct d3d10_effect_type *type;
struct d3d10_effect_variable *members;
struct d3d10_effect_variable *annotations;
@@ -169,7 +158,7 @@ struct d3d10_effect
DWORD shader_compile_count;
struct wine_rb_tree types;
- struct d3d10_effect_local_buffer *local_buffers;
+ struct d3d10_effect_variable *local_buffers;
struct d3d10_effect_technique *techniques;
};
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
index e2a1c88..ab50663 100644
--- a/dlls/d3d10/effect.c
+++ b/dlls/d3d10/effect.c
@@ -57,16 +57,16 @@ static struct d3d10_effect_technique null_technique =
{&d3d10_effect_technique_vtbl, NULL, NULL, 0, 0, NULL, NULL};
static struct d3d10_effect_pass null_pass =
{&d3d10_effect_pass_vtbl, NULL, NULL, 0, 0, 0, NULL, NULL};
-static struct d3d10_effect_local_buffer null_local_buffer =
- {&d3d10_effect_constant_buffer_vtbl, NULL, NULL, 0, 0, 0, NULL, NULL};
+static struct d3d10_effect_variable null_local_buffer =
+ {(ID3D10EffectVariableVtbl *)&d3d10_effect_constant_buffer_vtbl, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL};
static struct d3d10_effect_variable null_variable =
- {&d3d10_effect_variable_vtbl, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, NULL};
+ {&d3d10_effect_variable_vtbl, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL};
static struct d3d10_effect_variable null_scalar_variable =
- {(ID3D10EffectVariableVtbl *)&d3d10_effect_scalar_variable_vtbl, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, NULL};
+ {(ID3D10EffectVariableVtbl *)&d3d10_effect_scalar_variable_vtbl, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL};
static struct d3d10_effect_variable null_vector_variable =
- {(ID3D10EffectVariableVtbl *)&d3d10_effect_vector_variable_vtbl, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, NULL};
+ {(ID3D10EffectVariableVtbl *)&d3d10_effect_vector_variable_vtbl, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL};
static struct d3d10_effect_variable null_matrix_variable =
- {(ID3D10EffectVariableVtbl *)&d3d10_effect_matrix_variable_vtbl, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, NULL};
+ {(ID3D10EffectVariableVtbl *)&d3d10_effect_matrix_variable_vtbl, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL};
static inline void read_dword(const char **ptr, DWORD *d)
{
@@ -713,7 +713,7 @@ static HRESULT parse_fx10_variable(struct d3d10_effect_variable *v, const char *
return S_OK;
}
-static HRESULT parse_fx10_local_buffer(struct d3d10_effect_local_buffer *l, const char **ptr, const char *data)
+static HRESULT parse_fx10_local_buffer(struct d3d10_effect_variable *l, const char **ptr, const char *data)
{
unsigned int i;
DWORD offset;
@@ -884,8 +884,8 @@ static HRESULT parse_fx10_body(struct d3d10_effect *e, const char *data, DWORD d
for (i = 0; i < e->local_buffer_count; ++i)
{
- struct d3d10_effect_local_buffer *l = &e->local_buffers[i];
- l->vtbl = &d3d10_effect_constant_buffer_vtbl;
+ struct d3d10_effect_variable *l = &e->local_buffers[i];
+ l->vtbl = (ID3D10EffectVariableVtbl *)&d3d10_effect_constant_buffer_vtbl;
l->effect = e;
hr = parse_fx10_local_buffer(l, &ptr, data);
@@ -1111,7 +1111,7 @@ static void d3d10_effect_technique_destroy(struct d3d10_effect_technique *t)
}
}
-static void d3d10_effect_local_buffer_destroy(struct d3d10_effect_local_buffer *l)
+static void d3d10_effect_local_buffer_destroy(struct d3d10_effect_variable *l)
{
unsigned int i;
@@ -1246,7 +1246,7 @@ static struct ID3D10EffectConstantBuffer * STDMETHODCALLTYPE d3d10_effect_GetCon
UINT index)
{
struct d3d10_effect *This = (struct d3d10_effect *)iface;
- struct d3d10_effect_local_buffer *l;
+ struct d3d10_effect_variable *l;
TRACE("iface %p, index %u\n", iface, index);
@@ -1273,7 +1273,7 @@ static struct ID3D10EffectConstantBuffer * STDMETHODCALLTYPE d3d10_effect_GetCon
for (i = 0; i < This->local_buffer_count; ++i)
{
- struct d3d10_effect_local_buffer *l = &This->local_buffers[i];
+ struct d3d10_effect_variable *l = &This->local_buffers[i];
if (!strcmp(l->name, name))
{
@@ -1303,7 +1303,7 @@ static struct ID3D10EffectVariable * STDMETHODCALLTYPE d3d10_effect_GetVariableB
for (i = 0; i < This->local_buffer_count; ++i)
{
- struct d3d10_effect_local_buffer *l = &This->local_buffers[i];
+ struct d3d10_effect_variable *l = &This->local_buffers[i];
unsigned int j;
for (j = 0; j < l->type->member_count; ++j)
@@ -2017,7 +2017,7 @@ static BOOL STDMETHODCALLTYPE d3d10_effect_constant_buffer_IsValid(ID3D10EffectC
{
TRACE("iface %p\n", iface);
- return (struct d3d10_effect_local_buffer *)iface != &null_local_buffer;
+ return (struct d3d10_effect_variable *)iface != &null_local_buffer;
}
static struct ID3D10EffectType * STDMETHODCALLTYPE d3d10_effect_constant_buffer_GetType(ID3D10EffectConstantBuffer *iface)
@@ -2038,7 +2038,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_effect_constant_buffer_GetDesc(ID3D10Effe
static struct ID3D10EffectVariable * STDMETHODCALLTYPE d3d10_effect_constant_buffer_GetAnnotationByIndex(
ID3D10EffectConstantBuffer *iface, UINT index)
{
- struct d3d10_effect_local_buffer *This = (struct d3d10_effect_local_buffer *)iface;
+ struct d3d10_effect_variable *This = (struct d3d10_effect_variable *)iface;
struct d3d10_effect_variable *a;
TRACE("iface %p, index %u\n", iface, index);
@@ -2059,7 +2059,7 @@ static struct ID3D10EffectVariable * STDMETHODCALLTYPE d3d10_effect_constant_buf
static struct ID3D10EffectVariable * STDMETHODCALLTYPE d3d10_effect_constant_buffer_GetAnnotationByName(
ID3D10EffectConstantBuffer *iface, LPCSTR name)
{
- struct d3d10_effect_local_buffer *This = (struct d3d10_effect_local_buffer *)iface;
+ struct d3d10_effect_variable *This = (struct d3d10_effect_variable *)iface;
unsigned int i;
TRACE("iface %p, name %s.\n", iface, debugstr_a(name));
More information about the wine-cvs
mailing list