wined3d: Remove some assumptions that PreLoad() will always bind the texture.

This commit is contained in:
Henri Verbeet 2008-09-17 14:50:49 +02:00 committed by Alexandre Julliard
parent 53a7951230
commit 99981f2604
4 changed files with 4 additions and 1 deletions

View File

@ -389,7 +389,7 @@ void WINAPI IWineD3DBaseTextureImpl_ApplyStateChanges(IWineD3DBaseTexture *iface
GLint textureDimensions = IWineD3DBaseTexture_GetTextureDimensions(iface);
BOOL cond_np2 = IWineD3DBaseTexture_IsCondNP2(iface);
IWineD3DBaseTexture_PreLoad(iface);
/* ApplyStateChanges relies on the correct texture being bound and loaded. */
if(samplerStates[WINED3DSAMP_ADDRESSU] != This->baseTexture.states[WINED3DTEXSTA_ADDRESSU]) {
state = samplerStates[WINED3DSAMP_ADDRESSU];

View File

@ -5875,6 +5875,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_UpdateSurface(IWineD3DDevice *iface,
/* Make sure the surface is loaded and up to date */
IWineD3DSurface_PreLoad(pDestinationSurface);
IWineD3DSurface_BindTexture(pDestinationSurface);
IWineD3DSurface_GetGlDesc(pDestinationSurface, &glDescription);

View File

@ -3487,6 +3487,7 @@ static void sampler(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DCont
if(stateblock->textures[sampler]) {
IWineD3DBaseTexture_PreLoad(stateblock->textures[sampler]);
IWineD3DBaseTexture_BindTexture(stateblock->textures[sampler]);
IWineD3DBaseTexture_ApplyStateChanges(stateblock->textures[sampler], stateblock->textureState[sampler], stateblock->samplerState[sampler]);
if (GL_SUPPORT(EXT_TEXTURE_LOD_BIAS)) {

View File

@ -2452,6 +2452,7 @@ HRESULT WINAPI IWineD3DSurfaceImpl_SaveSnapshot(IWineD3DSurface *iface, const ch
} else { /* bind the real texture, and make sure it up to date */
IWineD3DSurface_PreLoad(iface);
surface_bind_and_dirtify(This);
}
allocatedMemory = HeapAlloc(GetProcessHeap(), 0, width * height * 4);
ENTER_GL();