wined3d: Pass a wined3d_context_gl structure to context_end_transform_feedback().

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2019-06-11 00:45:27 +04:30 committed by Alexandre Julliard
parent 258f0d209d
commit 6ffc6cd5d2
4 changed files with 13 additions and 9 deletions

View File

@ -144,6 +144,7 @@ static void wined3d_buffer_gl_bind(struct wined3d_buffer_gl *buffer_gl, struct w
static void wined3d_buffer_gl_destroy_buffer_object(struct wined3d_buffer_gl *buffer_gl,
struct wined3d_context *context)
{
struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
struct wined3d_resource *resource = &buffer_gl->b.resource;
const struct wined3d_gl_info *gl_info = context->gl_info;
@ -179,7 +180,7 @@ static void wined3d_buffer_gl_destroy_buffer_object(struct wined3d_buffer_gl *bu
* when deleting a potentially bound transform feedback buffer.
* This may happen when the device is being destroyed. */
WARN("Deleting buffer object for buffer %p, disabling transform feedback.\n", buffer_gl);
context_end_transform_feedback(context);
wined3d_context_gl_end_transform_feedback(context_gl);
}
}
}

View File

@ -4085,20 +4085,22 @@ static BOOL use_transform_feedback(const struct wined3d_state *state)
return shader->u.gs.so_desc.element_count;
}
void context_end_transform_feedback(struct wined3d_context *context)
void wined3d_context_gl_end_transform_feedback(struct wined3d_context_gl *context_gl)
{
const struct wined3d_gl_info *gl_info = context->gl_info;
if (context->transform_feedback_active)
const struct wined3d_gl_info *gl_info = context_gl->c.gl_info;
if (context_gl->c.transform_feedback_active)
{
GL_EXTCALL(glEndTransformFeedback());
checkGLcall("glEndTransformFeedback");
context->transform_feedback_active = 0;
context->transform_feedback_paused = 0;
context_gl->c.transform_feedback_active = 0;
context_gl->c.transform_feedback_paused = 0;
}
}
static void context_pause_transform_feedback(struct wined3d_context *context, BOOL force)
{
struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
const struct wined3d_gl_info *gl_info = context->gl_info;
if (!context->transform_feedback_active || context->transform_feedback_paused)
@ -4115,7 +4117,7 @@ static void context_pause_transform_feedback(struct wined3d_context *context, BO
WARN("Cannot pause transform feedback operations.\n");
if (force)
context_end_transform_feedback(context);
wined3d_context_gl_end_transform_feedback(context_gl);
}
static void context_setup_target(struct wined3d_context *context,

View File

@ -4448,13 +4448,14 @@ static void state_uav_warn(struct wined3d_context *context, const struct wined3d
static void state_so(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
const struct wined3d_gl_info *gl_info = context->gl_info;
struct wined3d_buffer *buffer;
unsigned int offset, size, i;
TRACE("context %p, state %p, state_id %#x.\n", context, state, state_id);
context_end_transform_feedback(context);
wined3d_context_gl_end_transform_feedback(context_gl);
for (i = 0; i < ARRAY_SIZE(state->stream_output); ++i)
{

View File

@ -2091,6 +2091,7 @@ void wined3d_context_gl_copy_bo_address(struct wined3d_context_gl *context_gl,
const struct wined3d_bo_address *src, GLenum src_binding, size_t size) DECLSPEC_HIDDEN;
void wined3d_context_gl_destroy(struct wined3d_context_gl *context_gl) DECLSPEC_HIDDEN;
void wined3d_context_gl_enable_clip_distances(struct wined3d_context_gl *context_gl, uint32_t mask) DECLSPEC_HIDDEN;
void wined3d_context_gl_end_transform_feedback(struct wined3d_context_gl *context_gl) DECLSPEC_HIDDEN;
void wined3d_context_gl_free_fence(struct wined3d_fence *fence) DECLSPEC_HIDDEN;
void wined3d_context_gl_free_occlusion_query(struct wined3d_occlusion_query *query) DECLSPEC_HIDDEN;
void wined3d_context_gl_free_pipeline_statistics_query(struct wined3d_pipeline_statistics_query *query) DECLSPEC_HIDDEN;
@ -2250,7 +2251,6 @@ void context_draw_shaded_quad(struct wined3d_context *context, struct wined3d_te
void context_draw_textured_quad(struct wined3d_context *context, struct wined3d_texture_gl *texture_gl,
unsigned int sub_resource_idx, const RECT *src_rect, const RECT *dst_rect,
enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
void context_end_transform_feedback(struct wined3d_context *context) DECLSPEC_HIDDEN;
struct wined3d_context *context_get_current(void) DECLSPEC_HIDDEN;
DWORD context_get_tls_idx(void) DECLSPEC_HIDDEN;
void context_gl_resource_released(struct wined3d_device *device,