Module: wine
Branch: master
Commit: daa59e00be8a31f9e103ae9101182686173428d1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=daa59e00be8a31f9e103ae910…
Author: H. Verbeet <hverbeet(a)gmail.com>
Date: Wed Jul 30 23:16:34 2008 +0200
wined3d: Call LoadLocation() on higher render targets as well, simplify some code in drawPrimitive.
It's probably rare for higher render targets to get locked or updated
from sysmem, but this should still be more correct. It also makes the
code simpler.
---
dlls/wined3d/drawprim.c | 14 +++-----------
1 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index fddf365..fd96ea2 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -930,17 +930,9 @@ void drawPrimitive(IWineD3DDevice *iface,
/* Invalidate the back buffer memory so LockRect will read it the next time */
for(i = 0; i < GL_LIMITS(buffers); i++) {
target = (IWineD3DSurfaceImpl *) This->render_targets[i];
-
- /* TODO: Only do all that if we're going to change anything */
- if(target /*&& target->Flags & (SFLAG_INTEXTURE | SFLAG_INSYSMEM)*/) {
- if(i == 0) {
- /* Need the surface in the drawable! */
- IWineD3DSurface_LoadLocation((IWineD3DSurface *) target, SFLAG_INDRAWABLE, NULL);
- IWineD3DSurface_ModifyLocation((IWineD3DSurface *) target, SFLAG_INDRAWABLE, TRUE);
- } else {
- /* Must be an fbo render target */
- IWineD3DSurface_ModifyLocation((IWineD3DSurface *) target, SFLAG_INDRAWABLE, TRUE);
- }
+ if (target) {
+ IWineD3DSurface_LoadLocation((IWineD3DSurface *) target, SFLAG_INDRAWABLE, NULL);
+ IWineD3DSurface_ModifyLocation((IWineD3DSurface *) target, SFLAG_INDRAWABLE, TRUE);
}
}