wined3d: Use CTXUSAGE_RESOURCELOAD for fb->texture reads.

There is no need for _BLIT usage. RESOURCELOAD should be faster.
This commit is contained in:
Stefan Dösinger 2008-06-17 01:41:02 +02:00 committed by Alexandre Julliard
parent 74c5684f90
commit 1c7f39ed1e
1 changed files with 4 additions and 5 deletions

View File

@ -886,12 +886,11 @@ static void read_from_framebuffer_texture(IWineD3DSurfaceImpl *This)
d3dfmt_get_conv(This, TRUE /* We need color keying */, TRUE /* We will use textures */, &format, &internal, &type, &convert, &bpp, This->srgb); d3dfmt_get_conv(This, TRUE /* We need color keying */, TRUE /* We will use textures */, &format, &internal, &type, &convert, &bpp, This->srgb);
IWineD3DSurface_GetContainer((IWineD3DSurface *) This, &IID_IWineD3DSwapChain, (void **)&swapchain); IWineD3DSurface_GetContainer((IWineD3DSurface *) This, &IID_IWineD3DSwapChain, (void **)&swapchain);
/* Activate the surface. Set it up for blitting now, although not necessarily needed for LockRect. /* Activate the surface to read from. In some situations it isn't the currently active target(e.g. backbuffer
* Certain graphics drivers seem to dislike some enabled states when reading from opengl, the blitting usage * locking during offscreen rendering). RESOURCELOAD is ok because glCopyTexSubImage2D isn't affected by any
* should help here. Furthermore unlockrect will need the context set up for blitting. The context manager will find * states in the stateblock, and no driver was found yet that had bugs in that regard.
* context->last_was_blit set on the unlock.
*/ */
ActivateContext(device, (IWineD3DSurface *) This, CTXUSAGE_BLIT); ActivateContext(device, (IWineD3DSurface *) This, CTXUSAGE_RESOURCELOAD);
surface_bind_and_dirtify(This); surface_bind_and_dirtify(This);
ENTER_GL(); ENTER_GL();