mirror of
https://github.com/reactos/wine.git
synced 2024-11-26 05:00:30 +00:00
wined3d: Store the instance count in the context structure.
This commit is contained in:
parent
59e0b841c7
commit
bbfca4863c
@ -676,8 +676,8 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
}
|
||||
|
||||
stream_info = &context->stream_info;
|
||||
if (device->instance_count)
|
||||
instance_count = device->instance_count;
|
||||
if (context->instance_count)
|
||||
instance_count = context->instance_count;
|
||||
|
||||
if (indexed)
|
||||
{
|
||||
|
@ -4060,13 +4060,12 @@ static void unload_numbered_arrays(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;
|
||||
|
||||
/* Default to no instancing */
|
||||
device->instance_count = 0;
|
||||
context->instance_count = 0;
|
||||
|
||||
for (i = 0; i < MAX_ATTRIBS; i++)
|
||||
{
|
||||
@ -4085,8 +4084,8 @@ static void load_numbered_arrays(struct wined3d_context *context,
|
||||
|
||||
if (stream->flags & WINED3DSTREAMSOURCE_INSTANCEDATA)
|
||||
{
|
||||
if (!device->instance_count)
|
||||
device->instance_count = state->streams[0].frequency ? state->streams[0].frequency : 1;
|
||||
if (!context->instance_count)
|
||||
context->instance_count = state->streams[0].frequency ? state->streams[0].frequency : 1;
|
||||
|
||||
if (!gl_info->supported[ARB_INSTANCED_ARRAYS])
|
||||
{
|
||||
@ -4232,10 +4231,9 @@ static void load_numbered_arrays(struct wined3d_context *context,
|
||||
checkGLcall("Loading numbered arrays");
|
||||
}
|
||||
|
||||
static void load_vertex_data(const struct wined3d_context *context,
|
||||
static void load_vertex_data(struct wined3d_context *context,
|
||||
const struct wined3d_stream_info *si, 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;
|
||||
const struct wined3d_stream_info_element *e;
|
||||
@ -4243,7 +4241,7 @@ static void load_vertex_data(const struct wined3d_context *context,
|
||||
TRACE("Using fast vertex array code\n");
|
||||
|
||||
/* This is fixed function pipeline only, and the fixed function pipeline doesn't do instancing */
|
||||
device->instance_count = 0;
|
||||
context->instance_count = 0;
|
||||
|
||||
/* Blend Data ---------------------------------------------- */
|
||||
if ((si->use_map & (1 << WINED3D_FFP_BLENDWEIGHT))
|
||||
|
@ -1098,6 +1098,8 @@ struct wined3d_context
|
||||
DWORD active_texture;
|
||||
DWORD texture_type[MAX_COMBINED_SAMPLERS];
|
||||
|
||||
UINT instance_count;
|
||||
|
||||
/* The actual opengl context */
|
||||
UINT level;
|
||||
HGLRC restore_ctx;
|
||||
@ -1885,8 +1887,6 @@ struct wined3d_device
|
||||
APPLYSTATEFUNC *multistate_funcs[STATE_HIGHEST + 1];
|
||||
const struct blit_shader *blitter;
|
||||
|
||||
UINT instance_count;
|
||||
|
||||
BYTE vertexBlendUsed : 1; /* To avoid needless setting of the blend matrices */
|
||||
BYTE bCursorVisible : 1;
|
||||
BYTE d3d_initialized : 1;
|
||||
|
Loading…
Reference in New Issue
Block a user