[PATCH 3/5] wined3d: Pass a state pointer instead of a stateblock to loadNumberedArrays().
Henri Verbeet
hverbeet at codeweavers.com
Tue Jul 12 14:17:46 CDT 2011
---
dlls/wined3d/state.c | 22 +++++++++++-----------
1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index fb77104..50bf387 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -4047,9 +4047,8 @@ static inline void unload_numbered_array(struct wined3d_context *context, int i)
}
/* This should match any arrays loaded in loadNumberedArrays
- * TODO: Only load / unload arrays if we have to.
- */
-static inline void unloadNumberedArrays(struct wined3d_context *context)
+ * TODO: Only load / unload arrays if we have to. */
+static void unload_numbered_arrays(struct wined3d_context *context)
{
/* disable any attribs (this is the same for both GLSL and ARB modes) */
GLint maxAttribs = 16;
@@ -4065,16 +4064,17 @@ static inline void unloadNumberedArrays(struct wined3d_context *context)
}
}
-static void loadNumberedArrays(struct wined3d_stateblock *stateblock,
- const struct wined3d_stream_info *stream_info, struct wined3d_context *context)
+static void load_numbered_arrays(struct wined3d_context *context,
+ const struct wined3d_stream_info *stream_info, const struct wined3d_state *state)
{
+ struct wined3d_device *device = context->swapchain->device;
const struct wined3d_gl_info *gl_info = context->gl_info;
GLuint curVBO = gl_info->supported[ARB_VERTEX_BUFFER_OBJECT] ? ~0U : 0;
int i;
struct wined3d_buffer *vb;
/* Default to no instancing */
- stateblock->device->instancedDraw = FALSE;
+ device->instancedDraw = FALSE;
for (i = 0; i < MAX_ATTRIBS; i++)
{
@@ -4086,13 +4086,13 @@ static void loadNumberedArrays(struct wined3d_stateblock *stateblock,
continue;
}
- stream = &stateblock->state.streams[stream_info->elements[i].stream_idx];
+ stream = &state->streams[stream_info->elements[i].stream_idx];
/* Do not load instance data. It will be specified using glTexCoord by drawprim */
if (stream->flags & WINED3DSTREAMSOURCE_INSTANCEDATA)
{
if (context->numbered_array_mask & (1 << i)) unload_numbered_array(context, i);
- stateblock->device->instancedDraw = TRUE;
+ device->instancedDraw = TRUE;
continue;
}
@@ -4115,7 +4115,7 @@ static void loadNumberedArrays(struct wined3d_stateblock *stateblock,
stream_info->elements[i].format->gl_vtx_type,
stream_info->elements[i].format->gl_normalized,
stream_info->elements[i].stride, stream_info->elements[i].data.addr
- + stateblock->state.load_base_vertex_index * stream_info->elements[i].stride
+ + state->load_base_vertex_index * stream_info->elements[i].stride
+ stream->offset));
if (!(context->numbered_array_mask & (1 << i)))
@@ -4500,7 +4500,7 @@ static void streamsrc(DWORD state, struct wined3d_stateblock *stateblock, struct
if (isStateDirty(context, STATE_VDECL)) return;
if (context->numberedArraysLoaded && !load_numbered)
{
- unloadNumberedArrays(context);
+ unload_numbered_arrays(context);
context->numberedArraysLoaded = FALSE;
context->numbered_array_mask = 0;
}
@@ -4513,7 +4513,7 @@ static void streamsrc(DWORD state, struct wined3d_stateblock *stateblock, struct
if (load_numbered)
{
TRACE("Loading numbered arrays\n");
- loadNumberedArrays(stateblock, &device->strided_streams, context);
+ load_numbered_arrays(context, &device->strided_streams, &stateblock->state);
context->numberedArraysLoaded = TRUE;
}
else if (load_named)
--
1.7.3.4
More information about the wine-patches
mailing list