wined3d: Implement texture -> swapchain blits with stretch_rect_fbo.

This commit is contained in:
Stefan Dösinger 2007-12-18 13:52:48 +01:00 committed by Alexandre Julliard
parent 37e872e901
commit b95f30134b
1 changed files with 10 additions and 0 deletions

View File

@ -3095,6 +3095,16 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
SourceRectangle.top = 0;
SourceRectangle.bottom = Src->currentDesc.Height;
}
if (wined3d_settings.offscreen_rendering_mode == ORM_FBO && GL_SUPPORT(EXT_FRAMEBUFFER_BLIT) &&
(Flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE)) == 0) {
TRACE("Using stretch_rect_fbo\n");
/* The source is always a texture, but never the currently active render target, and the texture
* contents are never upside down
*/
stretch_rect_fbo((IWineD3DDevice *)myDevice, SrcSurface, (WINED3DRECT *) &SourceRectangle,
(IWineD3DSurface *)This, &rect, Filter, FALSE);
return WINED3D_OK;
}
if(!CalculateTexRect(Src, &SourceRectangle, glTexCoord)) {
/* Fall back to software */