wined3d: Unify the query issue() implementations.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
70889d6866
commit
92e9f4401d
|
@ -350,7 +350,14 @@ HRESULT CDECL wined3d_query_issue(struct wined3d_query *query, DWORD flags)
|
||||||
{
|
{
|
||||||
TRACE("query %p, flags %#x.\n", query, flags);
|
TRACE("query %p, flags %#x.\n", query, flags);
|
||||||
|
|
||||||
return query->query_ops->query_issue(query, flags);
|
query->query_ops->query_issue(query, flags);
|
||||||
|
|
||||||
|
if (flags & WINED3DISSUE_BEGIN)
|
||||||
|
query->state = QUERY_BUILDING;
|
||||||
|
else
|
||||||
|
query->state = QUERY_SIGNALLED;
|
||||||
|
|
||||||
|
return WINED3D_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL wined3d_occlusion_query_ops_poll(struct wined3d_query *query)
|
static BOOL wined3d_occlusion_query_ops_poll(struct wined3d_query *query)
|
||||||
|
@ -434,7 +441,7 @@ enum wined3d_query_type CDECL wined3d_query_get_type(const struct wined3d_query
|
||||||
return query->type;
|
return query->type;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
static void wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||||
{
|
{
|
||||||
TRACE("query %p, flags %#x.\n", query, flags);
|
TRACE("query %p, flags %#x.\n", query, flags);
|
||||||
|
|
||||||
|
@ -449,16 +456,9 @@ static HRESULT wined3d_event_query_ops_issue(struct wined3d_query *query, DWORD
|
||||||
/* Started implicitly at query creation. */
|
/* Started implicitly at query creation. */
|
||||||
ERR("Event query issued with START flag - what to do?\n");
|
ERR("Event query issued with START flag - what to do?\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & WINED3DISSUE_BEGIN)
|
|
||||||
query->state = QUERY_BUILDING;
|
|
||||||
else
|
|
||||||
query->state = QUERY_SIGNALLED;
|
|
||||||
|
|
||||||
return WINED3D_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
static void wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||||
{
|
{
|
||||||
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
struct wined3d_occlusion_query *oq = wined3d_occlusion_query_from_query(query);
|
||||||
struct wined3d_device *device = query->device;
|
struct wined3d_device *device = query->device;
|
||||||
|
@ -524,13 +524,6 @@ static HRESULT wined3d_occlusion_query_ops_issue(struct wined3d_query *query, DW
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & WINED3DISSUE_BEGIN)
|
|
||||||
query->state = QUERY_BUILDING;
|
|
||||||
else
|
|
||||||
query->state = QUERY_SIGNALLED;
|
|
||||||
|
|
||||||
return WINED3D_OK; /* can be WINED3DERR_INVALIDCALL. */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL wined3d_timestamp_query_ops_poll(struct wined3d_query *query)
|
static BOOL wined3d_timestamp_query_ops_poll(struct wined3d_query *query)
|
||||||
|
@ -571,7 +564,7 @@ static BOOL wined3d_timestamp_query_ops_poll(struct wined3d_query *query)
|
||||||
return available;
|
return available;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||||
{
|
{
|
||||||
struct wined3d_timestamp_query *tq = wined3d_timestamp_query_from_query(query);
|
struct wined3d_timestamp_query *tq = wined3d_timestamp_query_from_query(query);
|
||||||
struct wined3d_device *device = query->device;
|
struct wined3d_device *device = query->device;
|
||||||
|
@ -593,11 +586,7 @@ static HRESULT wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DW
|
||||||
GL_EXTCALL(glQueryCounter(tq->id, GL_TIMESTAMP));
|
GL_EXTCALL(glQueryCounter(tq->id, GL_TIMESTAMP));
|
||||||
checkGLcall("glQueryCounter()");
|
checkGLcall("glQueryCounter()");
|
||||||
context_release(context);
|
context_release(context);
|
||||||
|
|
||||||
query->state = QUERY_SIGNALLED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return WINED3D_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *query)
|
static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *query)
|
||||||
|
@ -607,16 +596,9 @@ static BOOL wined3d_timestamp_disjoint_query_ops_poll(struct wined3d_query *quer
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
static void wined3d_timestamp_disjoint_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||||
{
|
{
|
||||||
TRACE("query %p, flags %#x.\n", query, flags);
|
TRACE("query %p, flags %#x.\n", query, flags);
|
||||||
|
|
||||||
if (flags & WINED3DISSUE_BEGIN)
|
|
||||||
query->state = QUERY_BUILDING;
|
|
||||||
if (flags & WINED3DISSUE_END)
|
|
||||||
query->state = QUERY_SIGNALLED;
|
|
||||||
|
|
||||||
return WINED3D_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct wined3d_query_ops event_query_ops =
|
static const struct wined3d_query_ops event_query_ops =
|
||||||
|
|
|
@ -1380,7 +1380,7 @@ enum wined3d_query_state
|
||||||
struct wined3d_query_ops
|
struct wined3d_query_ops
|
||||||
{
|
{
|
||||||
BOOL (*query_poll)(struct wined3d_query *query);
|
BOOL (*query_poll)(struct wined3d_query *query);
|
||||||
HRESULT (*query_issue)(struct wined3d_query *query, DWORD flags);
|
void (*query_issue)(struct wined3d_query *query, DWORD flags);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct wined3d_query
|
struct wined3d_query
|
||||||
|
|
Loading…
Reference in New Issue