wined3d: Avoid storing color and rectangle pointers in struct wined3d_cs_clear.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
38f921a8a9
commit
7d65065ecb
|
@ -67,12 +67,12 @@ struct wined3d_cs_present
|
||||||
struct wined3d_cs_clear
|
struct wined3d_cs_clear
|
||||||
{
|
{
|
||||||
enum wined3d_cs_op opcode;
|
enum wined3d_cs_op opcode;
|
||||||
DWORD rect_count;
|
|
||||||
const RECT *rects;
|
|
||||||
DWORD flags;
|
DWORD flags;
|
||||||
const struct wined3d_color *color;
|
struct wined3d_color color;
|
||||||
float depth;
|
float depth;
|
||||||
DWORD stencil;
|
DWORD stencil;
|
||||||
|
unsigned int rect_count;
|
||||||
|
RECT rects[1];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct wined3d_cs_draw
|
struct wined3d_cs_draw
|
||||||
|
@ -287,7 +287,7 @@ static void wined3d_cs_exec_clear(struct wined3d_cs *cs, const void *data)
|
||||||
wined3d_get_draw_rect(&device->state, &draw_rect);
|
wined3d_get_draw_rect(&device->state, &draw_rect);
|
||||||
device_clear_render_targets(device, device->adapter->gl_info.limits.buffers,
|
device_clear_render_targets(device, device->adapter->gl_info.limits.buffers,
|
||||||
&device->fb, op->rect_count, op->rects, &draw_rect, op->flags,
|
&device->fb, op->rect_count, op->rects, &draw_rect, op->flags,
|
||||||
op->color, op->depth, op->stencil);
|
&op->color, op->depth, op->stencil);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
|
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
|
||||||
|
@ -295,14 +295,14 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *
|
||||||
{
|
{
|
||||||
struct wined3d_cs_clear *op;
|
struct wined3d_cs_clear *op;
|
||||||
|
|
||||||
op = cs->ops->require_space(cs, sizeof(*op));
|
op = cs->ops->require_space(cs, FIELD_OFFSET(struct wined3d_cs_clear, rects[rect_count]));
|
||||||
op->opcode = WINED3D_CS_OP_CLEAR;
|
op->opcode = WINED3D_CS_OP_CLEAR;
|
||||||
op->rect_count = rect_count;
|
|
||||||
op->rects = rects;
|
|
||||||
op->flags = flags;
|
op->flags = flags;
|
||||||
op->color = color;
|
op->color = *color;
|
||||||
op->depth = depth;
|
op->depth = depth;
|
||||||
op->stencil = stencil;
|
op->stencil = stencil;
|
||||||
|
op->rect_count = rect_count;
|
||||||
|
memcpy(op->rects, rects, sizeof(*rects) * rect_count);
|
||||||
|
|
||||||
cs->ops->submit(cs);
|
cs->ops->submit(cs);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue