On 7 April 2011 18:51, Adam Martinson amartinson@codeweavers.com wrote:
context_apply_fbo_state(context, GL_FRAMEBUFFER, context->blit_targets, depth_stencil, SFLAG_INTEXTURE);
if (rt_count == device->adapter->gl_info.limits.buffers &&
rts == device->render_targets &&
depth_stencil == device->depth_stencil)
{
if (context->device_fbo != NULL)
{
context_apply_device_fbo(context);
}
else
{
context_apply_fbo_state(context, GL_FRAMEBUFFER, context->blit_targets, depth_stencil, SFLAG_INTEXTURE);
context->device_fbo = context->current_fbo;
}
}
else
{
context_apply_fbo_state(context, GL_FRAMEBUFFER, context->blit_targets, depth_stencil, SFLAG_INTEXTURE);
}
That's not very pretty.
@@ -6709,6 +6721,7 @@ void device_resource_released(struct IWineD3DDeviceImpl *device, struct wined3d_ { ERR("Surface %p is still in use as render target %u.\n", surface, i); device->render_targets[i] = NULL;
fbo_dirty = TRUE; } }
@@ -6716,7 +6729,10 @@ void device_resource_released(struct IWineD3DDeviceImpl *device, struct wined3d_ { ERR("Surface %p is still in use as depth/stencil buffer.\n", surface); device->depth_stencil = NULL;
fbo_dirty = TRUE;
That code should never execute, hence the ERR.