[4/19] WineD3D: Move WINED3DTSS_COLOROP to the state table

Stefan Dösinger stefan at codeweavers.com
Tue Dec 19 16:00:58 CST 2006


This is the core patch of the 19 patches sent today. It moves colorop handling 
to the state table.

The stages depend on each other, all stages above the lowest one with a 
colorop of disable are disabled. Therefore SetTextureStageState keeps track 
of the lowest disabled stage and dirtifies other stages affected by enabling 
or disabling a stage. Handling this lowest_disabled_stage in Stateblocks will 
be improved once stateblocks work with a display list and are integrated into 
the state manager.

When a NULL texture is bound the meaning of the color operation and its source 
argument differs. Because of that SetTexture dirtifies the color op(and later 
the alpha op) when a NULL texture is bound, or was bound before and a != NULL 
texture is bound.

SetPixelShader temporarily dirtifies all color ops when pshaders are disabled. 
This will be removed later, when pixel shaders are handled by the state 
manager too(patch 16). When pixel shaders are used color ops aren't set 
because the glEnable/glDisable(GL_TEXTURE_xD) conflicts with pixel shaders.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-WineD3D-Move-WINED3DTSS_COLOROP-to-the-state-table.txt.bz2
Type: application/x-bzip2
Size: 5667 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20061219/6238222a/0004-WineD3D-Move-WINED3DTSS_COLOROP-to-the-state-table.txt.bin


More information about the wine-patches mailing list