Sweden-Number/dlls/wined3d
Ivan Gyurdiev 771623692e wined3d: Rework shader mode selection.
- currently half the shader selection code (GLSL vs ARB) is in
fillGLcaps. The parts that check for software shaders are in
GetDeviceCaps. That placement, will work, but is definitely not optimal.
FillGLcaps should detect support - it should not make decision as to
what's used, because that's not what the purpose of the function is.
GetDeviceCaps should report support as it has already been selected.
Instead, select shader mode in its own function, called in the
appropriate places.

- unifying pixel and vertex shaders into a single selection is a
mistake. A software vertex shader can be coupled with a hardware arb or
glsl pixel shader, or no shader at all. Split them back into two and add
a SHADER_NONE variant.

- drawprim is doing support checks for ARB_PROGRAM, and making shader
decisions based on that - that's wrong, support has already been
checked, and decided upon, and shaders can be implemented via software,
ARB_PROGRAm or GLSL, so that support check isn't valid.

- Store the shader selected mode into the shader itself. Different types
of shaders can be combined, so this is an improvement. In fact, storing
the mode into the settings globally is a mistake as well - it should be
done per device, since different cards have different capabilities.
2006-07-06 16:07:37 +02:00
..
.gitignore Renamed all .cvsignore files to .gitignore. 2005-11-26 13:10:33 +01:00
Makefile.in wined3d: Move constant loading into target-specific files. 2006-06-19 10:49:52 +02:00
arb_program_shader.c wined3d: Resync ARB mnxn function with GLSL mnxn function. 2006-07-03 12:04:09 +02:00
baseshader.c wined3d: Rework shader mode selection. 2006-07-06 16:07:37 +02:00
basetexture.c Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
cubetexture.c wined3d: Make the virtual table functions static where possible. 2006-06-10 13:15:32 +02:00
device.c wined3d: Rework shader mode selection. 2006-07-06 16:07:37 +02:00
directx.c wined3d: Rework shader mode selection. 2006-07-06 16:07:37 +02:00
drawprim.c wined3d: Rework shader mode selection. 2006-07-06 16:07:37 +02:00
glsl_shader.c wined3d: Fix a few GLSL shader instruction translations. 2006-06-29 14:41:01 +02:00
indexbuffer.c wined3d: Make the virtual table functions static where possible. 2006-06-10 13:15:32 +02:00
palette.c wined3d: Make the virtual table functions static where possible. 2006-06-10 13:15:32 +02:00
pixelshader.c wined3d: Rework shader mode selection. 2006-07-06 16:07:37 +02:00
query.c wined3d: Make the virtual table functions static where possible. 2006-06-10 13:15:32 +02:00
resource.c Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
stateblock.c wined3d: Use register combiners for texture stage operations. 2006-06-28 16:34:36 +02:00
surface.c wined3d: Flip WINED3DFMT_R8G8B8 to GL_RGB. 2006-07-06 12:45:27 +02:00
surface_gdi.c wined3d: Perform sanity checks on the rectangle in LockRect. 2006-06-30 20:44:27 +02:00
swapchain.c wined3d: Support more than one back buffer. 2006-06-15 16:51:41 +02:00
texture.c wined3d: Make the virtual table functions static where possible. 2006-06-10 13:15:32 +02:00
utils.c wined3d: Flip WINED3DFMT_R8G8B8 to GL_RGB. 2006-07-06 12:45:27 +02:00
vertexbuffer.c wined3d: Vertex buffer can be locked multiple times. 2006-06-27 21:14:02 +02:00
vertexdeclaration.c wined3d: Make the virtual table functions static where possible. 2006-06-10 13:15:32 +02:00
vertexshader.c wined3d: Rework shader mode selection. 2006-07-06 16:07:37 +02:00
volume.c wined3d: Pixel format cleanup. 2006-06-21 12:15:50 +02:00
volumetexture.c wined3d: Make the virtual table functions static where possible. 2006-06-10 13:15:32 +02:00
wined3d.spec WineDirect3DCreate has 3 args in the source. 2005-03-21 10:52:32 +00:00
wined3d_main.c Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
wined3d_private.h wined3d: Rework shader mode selection. 2006-07-06 16:07:37 +02:00