Commit 8de7d2ed authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Use context_apply_clear_state() in color_fill_fbo().

parent ed75f5ca
...@@ -5487,42 +5487,24 @@ static void color_fill_fbo(IWineD3DDevice *iface, IWineD3DSurfaceImpl *surface, ...@@ -5487,42 +5487,24 @@ static void color_fill_fbo(IWineD3DDevice *iface, IWineD3DSurfaceImpl *surface,
if (rect) IWineD3DSurface_LoadLocation((IWineD3DSurface *)surface, SFLAG_INDRAWABLE, NULL); if (rect) IWineD3DSurface_LoadLocation((IWineD3DSurface *)surface, SFLAG_INDRAWABLE, NULL);
IWineD3DSurface_ModifyLocation((IWineD3DSurface *)surface, SFLAG_INDRAWABLE, TRUE); IWineD3DSurface_ModifyLocation((IWineD3DSurface *)surface, SFLAG_INDRAWABLE, TRUE);
if (!surface_is_offscreen(surface)) context = context_acquire(This, surface);
{ context_apply_clear_state(context, This, surface, NULL);
TRACE("Surface %p is onscreen\n", surface);
context = context_acquire(This, surface);
ENTER_GL();
context_bind_fbo(context, GL_FRAMEBUFFER, NULL);
context_set_draw_buffer(context, surface_get_gl_buffer(surface));
}
else
{
TRACE("Surface %p is offscreen\n", surface);
context = context_acquire(This, NULL); ENTER_GL();
ENTER_GL();
context_bind_fbo(context, GL_FRAMEBUFFER, &context->dst_fbo);
context_attach_surface_fbo(context, GL_FRAMEBUFFER, 0, surface);
context_attach_depth_stencil_fbo(context, GL_FRAMEBUFFER, NULL, FALSE);
}
if (rect) { if (rect)
glEnable(GL_SCISSOR_TEST); {
if (surface_is_offscreen(surface)) if (surface_is_offscreen(surface))
glScissor(rect->x1, rect->y1, rect->x2 - rect->x1, rect->y2 - rect->y1); glScissor(rect->x1, rect->y1, rect->x2 - rect->x1, rect->y2 - rect->y1);
else else
glScissor(rect->x1, surface->currentDesc.Height - rect->y2, glScissor(rect->x1, surface->currentDesc.Height - rect->y2,
rect->x2 - rect->x1, rect->y2 - rect->y1); rect->x2 - rect->x1, rect->y2 - rect->y1);
checkGLcall("glScissor"); checkGLcall("glScissor");
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_SCISSORRECT); }
} else { else
{
glDisable(GL_SCISSOR_TEST); glDisable(GL_SCISSOR_TEST);
} }
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_RENDER(WINED3DRS_SCISSORTESTENABLE));
glDisable(GL_BLEND);
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_RENDER(WINED3DRS_ALPHABLENDENABLE));
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_RENDER(WINED3DRS_COLORWRITEENABLE)); IWineD3DDeviceImpl_MarkStateDirty(This, STATE_RENDER(WINED3DRS_COLORWRITEENABLE));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment