wined3d: Store the wined3d primitive type in the wined3d state structure.
As opposed to the OpenGL primitive type. Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
acd209d603
commit
51a901e34e
|
@ -38,6 +38,52 @@ WINE_DECLARE_DEBUG_CHANNEL(d3d_synchronous);
|
|||
|
||||
static DWORD wined3d_context_tls_idx;
|
||||
|
||||
/* Note that except for WINED3DPT_POINTLIST and WINED3DPT_LINELIST these
|
||||
* actually have the same values in GL and D3D. */
|
||||
static GLenum gl_primitive_type_from_d3d(enum wined3d_primitive_type primitive_type)
|
||||
{
|
||||
switch (primitive_type)
|
||||
{
|
||||
case WINED3D_PT_POINTLIST:
|
||||
return GL_POINTS;
|
||||
|
||||
case WINED3D_PT_LINELIST:
|
||||
return GL_LINES;
|
||||
|
||||
case WINED3D_PT_LINESTRIP:
|
||||
return GL_LINE_STRIP;
|
||||
|
||||
case WINED3D_PT_TRIANGLELIST:
|
||||
return GL_TRIANGLES;
|
||||
|
||||
case WINED3D_PT_TRIANGLESTRIP:
|
||||
return GL_TRIANGLE_STRIP;
|
||||
|
||||
case WINED3D_PT_TRIANGLEFAN:
|
||||
return GL_TRIANGLE_FAN;
|
||||
|
||||
case WINED3D_PT_LINELIST_ADJ:
|
||||
return GL_LINES_ADJACENCY_ARB;
|
||||
|
||||
case WINED3D_PT_LINESTRIP_ADJ:
|
||||
return GL_LINE_STRIP_ADJACENCY_ARB;
|
||||
|
||||
case WINED3D_PT_TRIANGLELIST_ADJ:
|
||||
return GL_TRIANGLES_ADJACENCY_ARB;
|
||||
|
||||
case WINED3D_PT_TRIANGLESTRIP_ADJ:
|
||||
return GL_TRIANGLE_STRIP_ADJACENCY_ARB;
|
||||
|
||||
case WINED3D_PT_PATCH:
|
||||
return GL_PATCHES;
|
||||
|
||||
default:
|
||||
FIXME("Unhandled primitive type %s.\n", debug_d3dprimitivetype(primitive_type));
|
||||
case WINED3D_PT_UNDEFINED:
|
||||
return ~0u;
|
||||
}
|
||||
}
|
||||
|
||||
/* FBO helper functions */
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
|
@ -3931,10 +3977,10 @@ static void wined3d_context_gl_draw_primitive_arrays(struct wined3d_context_gl *
|
|||
const struct wined3d_ffp_attrib_ops *ops = &context_gl->c.d3d_info->ffp_attrib_ops;
|
||||
GLenum idx_type = idx_size == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT;
|
||||
const struct wined3d_stream_info *si = &context_gl->c.stream_info;
|
||||
GLenum mode = gl_primitive_type_from_d3d(state->primitive_type);
|
||||
const struct wined3d_gl_info *gl_info = context_gl->gl_info;
|
||||
unsigned int instanced_elements[ARRAY_SIZE(si->elements)];
|
||||
unsigned int instanced_element_count = 0;
|
||||
GLenum mode = state->gl_primitive_type;
|
||||
const void *indices;
|
||||
unsigned int i, j;
|
||||
|
||||
|
@ -4104,7 +4150,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context_gl *context_gl,
|
|||
|
||||
ops = &d3d_info->ffp_attrib_ops;
|
||||
|
||||
gl_info->gl_ops.gl.p_glBegin(state->gl_primitive_type);
|
||||
gl_info->gl_ops.gl.p_glBegin(gl_primitive_type_from_d3d(state->primitive_type));
|
||||
|
||||
if (use_vs(state) || d3d_info->ffp_generic_attributes)
|
||||
{
|
||||
|
@ -4289,6 +4335,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context_gl *context_gl,
|
|||
static void wined3d_context_gl_draw_indirect(struct wined3d_context_gl *context_gl, const struct wined3d_state *state,
|
||||
const struct wined3d_indirect_draw_parameters *parameters, unsigned int idx_size)
|
||||
{
|
||||
GLenum gl_primitive_type = gl_primitive_type_from_d3d(state->primitive_type);
|
||||
const struct wined3d_gl_info *gl_info = context_gl->gl_info;
|
||||
struct wined3d_buffer *buffer = parameters->buffer;
|
||||
const void *offset;
|
||||
|
@ -4307,11 +4354,11 @@ static void wined3d_context_gl_draw_indirect(struct wined3d_context_gl *context_
|
|||
GLenum idx_type = idx_size == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT;
|
||||
if (state->index_offset)
|
||||
FIXME("Ignoring index offset %u.\n", state->index_offset);
|
||||
GL_EXTCALL(glDrawElementsIndirect(state->gl_primitive_type, idx_type, offset));
|
||||
GL_EXTCALL(glDrawElementsIndirect(gl_primitive_type, idx_type, offset));
|
||||
}
|
||||
else
|
||||
{
|
||||
GL_EXTCALL(glDrawArraysIndirect(state->gl_primitive_type, offset));
|
||||
GL_EXTCALL(glDrawArraysIndirect(gl_primitive_type, offset));
|
||||
}
|
||||
|
||||
GL_EXTCALL(glBindBuffer(GL_DRAW_INDIRECT_BUFFER, 0));
|
||||
|
@ -4545,7 +4592,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
|
|||
else if (!context->transform_feedback_active)
|
||||
{
|
||||
enum wined3d_primitive_type primitive_type = shader->u.gs.output_type
|
||||
? shader->u.gs.output_type : d3d_primitive_type_from_gl(state->gl_primitive_type);
|
||||
? shader->u.gs.output_type : state->primitive_type;
|
||||
GLenum mode = gl_tfb_primitive_type_from_d3d(primitive_type);
|
||||
GL_EXTCALL(glBeginTransformFeedback(mode));
|
||||
checkGLcall("glBeginTransformFeedback");
|
||||
|
@ -4553,7 +4600,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
|
|||
}
|
||||
}
|
||||
|
||||
if (state->gl_primitive_type == GL_PATCHES)
|
||||
if (state->primitive_type == WINED3D_PT_PATCH)
|
||||
{
|
||||
GL_EXTCALL(glPatchParameteri(GL_PATCH_VERTICES, state->gl_patch_vertices));
|
||||
checkGLcall("glPatchParameteri");
|
||||
|
|
|
@ -121,7 +121,7 @@ struct wined3d_cs_dispatch
|
|||
struct wined3d_cs_draw
|
||||
{
|
||||
enum wined3d_cs_op opcode;
|
||||
GLenum primitive_type;
|
||||
enum wined3d_primitive_type primitive_type;
|
||||
GLint patch_vertex_count;
|
||||
struct wined3d_draw_parameters parameters;
|
||||
};
|
||||
|
@ -881,13 +881,13 @@ static void wined3d_cs_exec_draw(struct wined3d_cs *cs, const void *data)
|
|||
device_invalidate_state(cs->device, STATE_BASEVERTEXINDEX);
|
||||
}
|
||||
|
||||
if (state->gl_primitive_type != op->primitive_type)
|
||||
if (state->primitive_type != op->primitive_type)
|
||||
{
|
||||
if ((geometry_shader = state->shader[WINED3D_SHADER_TYPE_GEOMETRY]) && !geometry_shader->function)
|
||||
device_invalidate_state(cs->device, STATE_SHADER(WINED3D_SHADER_TYPE_GEOMETRY));
|
||||
if (state->gl_primitive_type == GL_POINTS || op->primitive_type == GL_POINTS)
|
||||
if (state->primitive_type == WINED3D_PT_POINTLIST || op->primitive_type == WINED3D_PT_POINTLIST)
|
||||
device_invalidate_state(cs->device, STATE_POINT_ENABLE);
|
||||
state->gl_primitive_type = op->primitive_type;
|
||||
state->primitive_type = op->primitive_type;
|
||||
}
|
||||
state->gl_patch_vertices = op->patch_vertex_count;
|
||||
|
||||
|
@ -962,9 +962,9 @@ static void acquire_graphics_pipeline_resources(const struct wined3d_state *stat
|
|||
state->unordered_access_view[WINED3D_PIPELINE_GRAPHICS]);
|
||||
}
|
||||
|
||||
void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, unsigned int patch_vertex_count,
|
||||
int base_vertex_idx, unsigned int start_idx, unsigned int index_count,
|
||||
unsigned int start_instance, unsigned int instance_count, BOOL indexed)
|
||||
void wined3d_cs_emit_draw(struct wined3d_cs *cs, enum wined3d_primitive_type primitive_type,
|
||||
unsigned int patch_vertex_count, int base_vertex_idx, unsigned int start_idx,
|
||||
unsigned int index_count, unsigned int start_instance, unsigned int instance_count, bool indexed)
|
||||
{
|
||||
const struct wined3d_d3d_info *d3d_info = &cs->device->adapter->d3d_info;
|
||||
const struct wined3d_state *state = &cs->device->state;
|
||||
|
@ -987,8 +987,8 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, unsigned
|
|||
wined3d_cs_submit(cs, WINED3D_CS_QUEUE_DEFAULT);
|
||||
}
|
||||
|
||||
void wined3d_cs_emit_draw_indirect(struct wined3d_cs *cs, GLenum primitive_type, unsigned int patch_vertex_count,
|
||||
struct wined3d_buffer *buffer, unsigned int offset, BOOL indexed)
|
||||
void wined3d_cs_emit_draw_indirect(struct wined3d_cs *cs, enum wined3d_primitive_type primitive_type,
|
||||
unsigned int patch_vertex_count, struct wined3d_buffer *buffer, unsigned int offset, bool indexed)
|
||||
{
|
||||
const struct wined3d_d3d_info *d3d_info = &cs->device->adapter->d3d_info;
|
||||
const struct wined3d_state *state = &cs->device->state;
|
||||
|
|
|
@ -90,96 +90,6 @@ const struct wined3d_light WINED3D_default_light =
|
|||
0.0f /* Phi */
|
||||
};
|
||||
|
||||
/* Note that except for WINED3DPT_POINTLIST and WINED3DPT_LINELIST these
|
||||
* actually have the same values in GL and D3D. */
|
||||
GLenum gl_primitive_type_from_d3d(enum wined3d_primitive_type primitive_type)
|
||||
{
|
||||
switch (primitive_type)
|
||||
{
|
||||
case WINED3D_PT_POINTLIST:
|
||||
return GL_POINTS;
|
||||
|
||||
case WINED3D_PT_LINELIST:
|
||||
return GL_LINES;
|
||||
|
||||
case WINED3D_PT_LINESTRIP:
|
||||
return GL_LINE_STRIP;
|
||||
|
||||
case WINED3D_PT_TRIANGLELIST:
|
||||
return GL_TRIANGLES;
|
||||
|
||||
case WINED3D_PT_TRIANGLESTRIP:
|
||||
return GL_TRIANGLE_STRIP;
|
||||
|
||||
case WINED3D_PT_TRIANGLEFAN:
|
||||
return GL_TRIANGLE_FAN;
|
||||
|
||||
case WINED3D_PT_LINELIST_ADJ:
|
||||
return GL_LINES_ADJACENCY_ARB;
|
||||
|
||||
case WINED3D_PT_LINESTRIP_ADJ:
|
||||
return GL_LINE_STRIP_ADJACENCY_ARB;
|
||||
|
||||
case WINED3D_PT_TRIANGLELIST_ADJ:
|
||||
return GL_TRIANGLES_ADJACENCY_ARB;
|
||||
|
||||
case WINED3D_PT_TRIANGLESTRIP_ADJ:
|
||||
return GL_TRIANGLE_STRIP_ADJACENCY_ARB;
|
||||
|
||||
case WINED3D_PT_PATCH:
|
||||
return GL_PATCHES;
|
||||
|
||||
default:
|
||||
FIXME("Unhandled primitive type %s.\n", debug_d3dprimitivetype(primitive_type));
|
||||
case WINED3D_PT_UNDEFINED:
|
||||
return ~0u;
|
||||
}
|
||||
}
|
||||
|
||||
enum wined3d_primitive_type d3d_primitive_type_from_gl(GLenum primitive_type)
|
||||
{
|
||||
switch (primitive_type)
|
||||
{
|
||||
case GL_POINTS:
|
||||
return WINED3D_PT_POINTLIST;
|
||||
|
||||
case GL_LINES:
|
||||
return WINED3D_PT_LINELIST;
|
||||
|
||||
case GL_LINE_STRIP:
|
||||
return WINED3D_PT_LINESTRIP;
|
||||
|
||||
case GL_TRIANGLES:
|
||||
return WINED3D_PT_TRIANGLELIST;
|
||||
|
||||
case GL_TRIANGLE_STRIP:
|
||||
return WINED3D_PT_TRIANGLESTRIP;
|
||||
|
||||
case GL_TRIANGLE_FAN:
|
||||
return WINED3D_PT_TRIANGLEFAN;
|
||||
|
||||
case GL_LINES_ADJACENCY_ARB:
|
||||
return WINED3D_PT_LINELIST_ADJ;
|
||||
|
||||
case GL_LINE_STRIP_ADJACENCY_ARB:
|
||||
return WINED3D_PT_LINESTRIP_ADJ;
|
||||
|
||||
case GL_TRIANGLES_ADJACENCY_ARB:
|
||||
return WINED3D_PT_TRIANGLELIST_ADJ;
|
||||
|
||||
case GL_TRIANGLE_STRIP_ADJACENCY_ARB:
|
||||
return WINED3D_PT_TRIANGLESTRIP_ADJ;
|
||||
|
||||
case GL_PATCHES:
|
||||
return WINED3D_PT_PATCH;
|
||||
|
||||
default:
|
||||
FIXME("Unhandled primitive type %s.\n", debug_d3dprimitivetype(primitive_type));
|
||||
case ~0u:
|
||||
return WINED3D_PT_UNDEFINED;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL device_context_add(struct wined3d_device *device, struct wined3d_context *context)
|
||||
{
|
||||
struct wined3d_context **new_array;
|
||||
|
@ -4066,7 +3976,7 @@ void CDECL wined3d_device_set_primitive_type(struct wined3d_device *device,
|
|||
TRACE("device %p, primitive_type %s, patch_vertex_count %u.\n",
|
||||
device, debug_d3dprimitivetype(primitive_type), patch_vertex_count);
|
||||
|
||||
device->state.gl_primitive_type = gl_primitive_type_from_d3d(primitive_type);
|
||||
device->state.primitive_type = primitive_type;
|
||||
device->state.gl_patch_vertices = patch_vertex_count;
|
||||
}
|
||||
|
||||
|
@ -4076,7 +3986,7 @@ void CDECL wined3d_device_get_primitive_type(const struct wined3d_device *device
|
|||
TRACE("device %p, primitive_type %p, patch_vertex_count %p.\n",
|
||||
device, primitive_type, patch_vertex_count);
|
||||
|
||||
*primitive_type = d3d_primitive_type_from_gl(device->state.gl_primitive_type);
|
||||
*primitive_type = device->state.primitive_type;
|
||||
if (patch_vertex_count)
|
||||
*patch_vertex_count = device->state.gl_patch_vertices;
|
||||
|
||||
|
@ -4087,8 +3997,8 @@ HRESULT CDECL wined3d_device_draw_primitive(struct wined3d_device *device, UINT
|
|||
{
|
||||
TRACE("device %p, start_vertex %u, vertex_count %u.\n", device, start_vertex, vertex_count);
|
||||
|
||||
wined3d_cs_emit_draw(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices,
|
||||
0, start_vertex, vertex_count, 0, 0, FALSE);
|
||||
wined3d_cs_emit_draw(device->cs, device->state.primitive_type,
|
||||
device->state.gl_patch_vertices, 0, start_vertex, vertex_count, 0, 0, false);
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
@ -4099,8 +4009,8 @@ void CDECL wined3d_device_draw_primitive_instanced(struct wined3d_device *device
|
|||
TRACE("device %p, start_vertex %u, vertex_count %u, start_instance %u, instance_count %u.\n",
|
||||
device, start_vertex, vertex_count, start_instance, instance_count);
|
||||
|
||||
wined3d_cs_emit_draw(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices,
|
||||
0, start_vertex, vertex_count, start_instance, instance_count, FALSE);
|
||||
wined3d_cs_emit_draw(device->cs, device->state.primitive_type, device->state.gl_patch_vertices,
|
||||
0, start_vertex, vertex_count, start_instance, instance_count, false);
|
||||
}
|
||||
|
||||
void CDECL wined3d_device_draw_primitive_instanced_indirect(struct wined3d_device *device,
|
||||
|
@ -4108,8 +4018,8 @@ void CDECL wined3d_device_draw_primitive_instanced_indirect(struct wined3d_devic
|
|||
{
|
||||
TRACE("device %p, buffer %p, offset %u.\n", device, buffer, offset);
|
||||
|
||||
wined3d_cs_emit_draw_indirect(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices,
|
||||
buffer, offset, FALSE);
|
||||
wined3d_cs_emit_draw_indirect(device->cs, device->state.primitive_type,
|
||||
device->state.gl_patch_vertices, buffer, offset, false);
|
||||
}
|
||||
|
||||
HRESULT CDECL wined3d_device_draw_indexed_primitive(struct wined3d_device *device, UINT start_idx, UINT index_count)
|
||||
|
@ -4126,8 +4036,8 @@ HRESULT CDECL wined3d_device_draw_indexed_primitive(struct wined3d_device *devic
|
|||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
wined3d_cs_emit_draw(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices,
|
||||
device->state.base_vertex_index, start_idx, index_count, 0, 0, TRUE);
|
||||
wined3d_cs_emit_draw(device->cs, device->state.primitive_type, device->state.gl_patch_vertices,
|
||||
device->state.base_vertex_index, start_idx, index_count, 0, 0, true);
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
@ -4138,8 +4048,8 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
|
|||
TRACE("device %p, start_idx %u, index_count %u, start_instance %u, instance_count %u.\n",
|
||||
device, start_idx, index_count, start_instance, instance_count);
|
||||
|
||||
wined3d_cs_emit_draw(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices,
|
||||
device->state.base_vertex_index, start_idx, index_count, start_instance, instance_count, TRUE);
|
||||
wined3d_cs_emit_draw(device->cs, device->state.primitive_type, device->state.gl_patch_vertices,
|
||||
device->state.base_vertex_index, start_idx, index_count, start_instance, instance_count, true);
|
||||
}
|
||||
|
||||
void CDECL wined3d_device_draw_indexed_primitive_instanced_indirect(struct wined3d_device *device,
|
||||
|
@ -4147,8 +4057,8 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced_indirect(struct wined
|
|||
{
|
||||
TRACE("device %p, buffer %p, offset %u.\n", device, buffer, offset);
|
||||
|
||||
wined3d_cs_emit_draw_indirect(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices,
|
||||
buffer, offset, TRUE);
|
||||
wined3d_cs_emit_draw_indirect(device->cs, device->state.primitive_type,
|
||||
device->state.gl_patch_vertices, buffer, offset, true);
|
||||
}
|
||||
|
||||
HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
|
|
|
@ -10348,7 +10348,7 @@ static void set_glsl_shader_program(const struct wined3d_context_gl *context_gl,
|
|||
if (vshader->reg_maps.shader_version.major < 4)
|
||||
{
|
||||
reorder_shader_id = shader_glsl_generate_vs3_rasterizer_input_setup(priv, vshader, pshader,
|
||||
state->gl_primitive_type == GL_POINTS && vshader->reg_maps.point_size,
|
||||
state->primitive_type == WINED3D_PT_POINTLIST && vshader->reg_maps.point_size,
|
||||
d3d_info->emulated_flatshading
|
||||
&& state->render_states[WINED3D_RS_SHADEMODE] == WINED3D_SHADE_FLAT, gl_info);
|
||||
TRACE("Attaching GLSL shader object %u to program %u.\n", reorder_shader_id, program_id);
|
||||
|
@ -11809,7 +11809,8 @@ static void glsl_vertex_pointsprite_core(struct wined3d_context *context,
|
|||
{
|
||||
static unsigned int once;
|
||||
|
||||
if (state->gl_primitive_type == GL_POINTS && !state->render_states[WINED3D_RS_POINTSPRITEENABLE] && !once++)
|
||||
if (state->primitive_type == WINED3D_PT_POINTLIST
|
||||
&& !state->render_states[WINED3D_RS_POINTSPRITEENABLE] && !once++)
|
||||
FIXME("Non-point sprite points not supported in core profile.\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -3541,7 +3541,7 @@ void find_vs_compile_args(const struct wined3d_state *state, const struct wined3
|
|||
== WINED3D_FOG_NONE ? VS_FOG_COORD : VS_FOG_Z;
|
||||
args->clip_enabled = state->render_states[WINED3D_RS_CLIPPING]
|
||||
&& state->render_states[WINED3D_RS_CLIPPLANEENABLE];
|
||||
args->point_size = state->gl_primitive_type == GL_POINTS;
|
||||
args->point_size = state->primitive_type == WINED3D_PT_POINTLIST;
|
||||
args->per_vertex_point_size = shader->reg_maps.point_size;
|
||||
args->next_shader_type = hull_shader ? WINED3D_SHADER_TYPE_HULL
|
||||
: geometry_shader ? WINED3D_SHADER_TYPE_GEOMETRY : WINED3D_SHADER_TYPE_PIXEL;
|
||||
|
@ -3899,7 +3899,7 @@ void find_gs_compile_args(const struct wined3d_state *state, const struct wined3
|
|||
args->output_count = pixel_shader ? pixel_shader->limits->packed_input : shader->limits->packed_output;
|
||||
|
||||
if (!(args->primitive_type = shader->u.gs.input_type))
|
||||
args->primitive_type = d3d_primitive_type_from_gl(state->gl_primitive_type);
|
||||
args->primitive_type = state->primitive_type;
|
||||
|
||||
init_interpolation_compile_args(args->interpolation_mode, pixel_shader, context->d3d_info);
|
||||
}
|
||||
|
@ -4155,7 +4155,7 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3
|
|||
}
|
||||
|
||||
args->pointsprite = state->render_states[WINED3D_RS_POINTSPRITEENABLE]
|
||||
&& state->gl_primitive_type == GL_POINTS;
|
||||
&& state->primitive_type == WINED3D_PT_POINTLIST;
|
||||
|
||||
if (d3d_info->ffp_alpha_test)
|
||||
args->alpha_test_func = WINED3D_CMP_ALWAYS - 1;
|
||||
|
|
|
@ -1818,7 +1818,7 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d
|
|||
TRACE("state %p, d3d_info %p.\n", state, d3d_info);
|
||||
|
||||
get_identity_matrix(&identity);
|
||||
state->gl_primitive_type = ~0u;
|
||||
state->primitive_type = WINED3D_PT_UNDEFINED;
|
||||
state->gl_patch_vertices = 0;
|
||||
|
||||
/* Set some of the defaults for lights, transforms etc */
|
||||
|
|
|
@ -6334,7 +6334,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
|
|||
}
|
||||
|
||||
settings->pointsprite = state->render_states[WINED3D_RS_POINTSPRITEENABLE]
|
||||
&& state->gl_primitive_type == GL_POINTS;
|
||||
&& state->primitive_type == WINED3D_PT_POINTLIST;
|
||||
|
||||
if (d3d_info->ffp_alpha_test)
|
||||
settings->alpha_test_func = WINED3D_CMP_ALWAYS - 1;
|
||||
|
@ -6498,7 +6498,7 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context,
|
|||
if (si->position_transformed)
|
||||
{
|
||||
settings->transformed = 1;
|
||||
settings->point_size = state->gl_primitive_type == GL_POINTS;
|
||||
settings->point_size = state->primitive_type == WINED3D_PT_POINTLIST;
|
||||
settings->per_vertex_point_size = !!(si->use_map & 1u << WINED3D_FFP_PSIZE);
|
||||
if (!state->render_states[WINED3D_RS_FOGENABLE])
|
||||
settings->fog_mode = WINED3D_FFP_VS_FOG_OFF;
|
||||
|
@ -6546,7 +6546,7 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context,
|
|||
settings->normalize = settings->normal && state->render_states[WINED3D_RS_NORMALIZENORMALS];
|
||||
settings->lighting = !!state->render_states[WINED3D_RS_LIGHTING];
|
||||
settings->localviewer = !!state->render_states[WINED3D_RS_LOCALVIEWER];
|
||||
settings->point_size = state->gl_primitive_type == GL_POINTS;
|
||||
settings->point_size = state->primitive_type == WINED3D_PT_POINTLIST;
|
||||
settings->per_vertex_point_size = !!(si->use_map & 1u << WINED3D_FFP_PSIZE);
|
||||
|
||||
wined3d_get_material_colour_source(&diffuse_source, &emissive_source,
|
||||
|
|
|
@ -3488,7 +3488,7 @@ struct wined3d_state
|
|||
unsigned int index_offset;
|
||||
int base_vertex_index;
|
||||
int load_base_vertex_index; /* Non-indexed drawing needs 0 here, indexed needs base_vertex_index. */
|
||||
GLenum gl_primitive_type;
|
||||
enum wined3d_primitive_type primitive_type;
|
||||
GLint gl_patch_vertices;
|
||||
struct wined3d_query *predicate;
|
||||
BOOL predicate_value;
|
||||
|
@ -4490,11 +4490,12 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs,
|
|||
unsigned int group_count_x, unsigned int group_count_y, unsigned int group_count_z) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_dispatch_indirect(struct wined3d_cs *cs,
|
||||
struct wined3d_buffer *buffer, unsigned int offset) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, unsigned int patch_vertex_count,
|
||||
int base_vertex_idx, unsigned int start_idx, unsigned int index_count,
|
||||
unsigned int start_instance, unsigned int instance_count, BOOL indexed) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_draw_indirect(struct wined3d_cs *cs, GLenum primitive_type, unsigned int patch_vertex_count,
|
||||
struct wined3d_buffer *buffer, unsigned int offset, BOOL indexed) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_draw(struct wined3d_cs *cs, enum wined3d_primitive_type primitive_type,
|
||||
unsigned int patch_vertex_count, int base_vertex_idx, unsigned int start_idx, unsigned int index_count,
|
||||
unsigned int start_instance, unsigned int instance_count, bool indexed) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_draw_indirect(struct wined3d_cs *cs, enum wined3d_primitive_type primitive_type,
|
||||
unsigned int patch_vertex_count, struct wined3d_buffer *buffer,
|
||||
unsigned int offset, bool indexed) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_flush(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_generate_mipmaps(struct wined3d_cs *cs, struct wined3d_shader_resource_view *view) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
|
@ -5066,9 +5067,6 @@ void state_pointsprite(struct wined3d_context *context,
|
|||
void state_shademode(struct wined3d_context *context,
|
||||
const struct wined3d_state *state, DWORD state_id) DECLSPEC_HIDDEN;
|
||||
|
||||
GLenum gl_primitive_type_from_d3d(enum wined3d_primitive_type primitive_type) DECLSPEC_HIDDEN;
|
||||
enum wined3d_primitive_type d3d_primitive_type_from_gl(GLenum primitive_type) DECLSPEC_HIDDEN;
|
||||
|
||||
/* Math utils */
|
||||
void multiply_matrix(struct wined3d_matrix *dest, const struct wined3d_matrix *src1,
|
||||
const struct wined3d_matrix *src2) DECLSPEC_HIDDEN;
|
||||
|
|
Loading…
Reference in New Issue