while(1) { if(vp->X != 0 || vp->Y != 0 || vp->Width < target->currentDesc.Width || vp->Height < target->currentDesc.Height) { IWineD3DSurface_LoadLocation((IWineD3DSurface *) target, SFLAG_INDRAWABLE, NULL); break; } if(This->stateBlock->renderState[WINED3DRS_SCISSORTESTENABLE] && ( This->stateBlock->scissorRect.left > 0 || This->stateBlock->scissorRect.top > 0 || This->stateBlock->scissorRect.right < target->currentDesc.Width || This->stateBlock->scissorRect.bottom < target->currentDesc.Height)) { IWineD3DSurface_LoadLocation((IWineD3DSurface *) target, SFLAG_INDRAWABLE, NULL); break; } if(Count > 0 && pRects && ( pRects[0].x1 > 0 || pRects[0].y1 > 0 || pRects[0].x2 < target->currentDesc.Width || pRects[0].y2 < target->currentDesc.Height)) { IWineD3DSurface_LoadLocation((IWineD3DSurface *) target, SFLAG_INDRAWABLE, NULL); break; } break; }