wined3d: Call IWineD3DDeviceImpl_FindTexUnitMap for cards without support for NV_REGISTER_COMBINERS as well.

This commit is contained in:
H. Verbeet 2007-07-01 23:40:57 +02:00 committed by Alexandre Julliard
parent fd133237b0
commit 5e78a83cb2
2 changed files with 5 additions and 7 deletions

View file

@ -807,9 +807,9 @@ void ActivateContext(IWineD3DDeviceImpl *This, IWineD3DSurface *target, ContextU
glEnable(GL_TEXTURE_SHADER_NV); glEnable(GL_TEXTURE_SHADER_NV);
checkGLcall("glEnable(GL_TEXTURE_SHADER_NV)"); checkGLcall("glEnable(GL_TEXTURE_SHADER_NV)");
} }
if (GL_SUPPORT(NV_REGISTER_COMBINERS)) {
IWineD3DDeviceImpl_FindTexUnitMap(This); IWineD3DDeviceImpl_FindTexUnitMap(This);
}
for(i=0; i < context->numDirtyEntries; i++) { for(i=0; i < context->numDirtyEntries; i++) {
dirtyState = context->dirtyArray[i]; dirtyState = context->dirtyArray[i];
idx = dirtyState >> 5; idx = dirtyState >> 5;

View file

@ -3261,7 +3261,7 @@ static void device_map_fixed_function_samplers(IWineD3DDeviceImpl *This) {
device_update_fixed_function_usage_map(This); device_update_fixed_function_usage_map(This);
if (This->stateBlock->lowest_disabled_stage <= GL_LIMITS(textures)) { if (!GL_SUPPORT(NV_REGISTER_COMBINERS) || This->stateBlock->lowest_disabled_stage <= GL_LIMITS(textures)) {
for (i = 0; i < This->stateBlock->lowest_disabled_stage; ++i) { for (i = 0; i < This->stateBlock->lowest_disabled_stage; ++i) {
if (!This->fixed_function_usage_map[i]) continue; if (!This->fixed_function_usage_map[i]) continue;
@ -3368,9 +3368,7 @@ static void device_map_vsamplers(IWineD3DDeviceImpl *This, BOOL ps) {
void IWineD3DDeviceImpl_FindTexUnitMap(IWineD3DDeviceImpl *This) { void IWineD3DDeviceImpl_FindTexUnitMap(IWineD3DDeviceImpl *This) {
BOOL vs = use_vs(This); BOOL vs = use_vs(This);
BOOL ps = use_ps(This); BOOL ps = use_ps(This);
/* This code can assume that GL_NV_register_combiners are supported, otherwise /*
* it is never called.
*
* Rules are: * Rules are:
* -> Pixel shaders need a 1:1 map. In theory the shader input could be mapped too, but * -> Pixel shaders need a 1:1 map. In theory the shader input could be mapped too, but
* that would be really messy and require shader recompilation * that would be really messy and require shader recompilation