Stefan Dösinger
5cf764aec2
wined3d: Put the color_correction calls into the instruction handlers.
...
The color correction cannot be done behind the back of the individual
instruction handlers because it might conflict with the instruction's
color modifications and the D3D provided writemask.
2009-02-27 13:14:23 +01:00
Stefan Dösinger
8dcd51286d
WineD3D: Put vertex shader duplication infrastructure in place.
2009-02-11 12:21:25 +01:00
Michael Stefaniuc
cc6b283d3a
wined3d: Remove some unused defines.
2009-02-03 12:40:12 +01:00
Henri Verbeet
894edc49cc
wined3d: Get rid of D3DCREATESHADEROBJECTINSTANCE.
2009-01-12 13:22:02 +01:00
Henri Verbeet
02e4c33611
wined3d: Consistently use .xyzw for vector components.
2008-12-20 11:11:55 +01:00
Stefan Dösinger
61e581abb4
wined3d: Pass the ps_compile_args structures to the shader generation code.
2008-12-19 17:16:39 +01:00
Henri Verbeet
d099dde7a9
wined3d: Track shader constants in the shader backend.
2008-12-18 13:17:02 +01:00
Henri Verbeet
73823ef5f6
wined3d: Remove the shader_cleanup() method from the shader backend.
2008-12-17 14:02:24 +01:00
Henri Verbeet
f3743fb402
wined3d: Shaders will never have a NULL function.
2008-12-16 12:52:04 +01:00
Henri Verbeet
9011452243
wined3d: Simplify shader_generate_main() a bit.
2008-12-15 14:00:29 +01:00
Henri Verbeet
8553665cb1
wined3d: Move the shader version to reg_maps.
2008-12-15 14:00:26 +01:00
Henri Verbeet
dd094fe69d
wined3d: Explicitly pass the shader version to some more functions.
2008-12-15 14:00:21 +01:00
Henri Verbeet
fb475c7c29
wined3d: Don't reparse the entire shader just to update the sampler types.
2008-12-12 11:40:20 +01:00
Stefan Dösinger
4916cd5478
wined3d: Don't load INT and BOOL constants needlessly.
2008-12-11 14:06:04 +01:00
Henri Verbeet
8124f5e14a
wined3d: shader_trace_init() shouldn't have side effects.
...
This moves setting baseShader.hex_version and baseShader.functionLength to
shader_get_registers_used(), where it's more appropriate.
2008-12-11 12:14:50 +01:00
Henri Verbeet
15d497cb26
wined3d: baseShader.functionLength should be 0 when a NULL pFunction is passed.
2008-12-11 12:14:36 +01:00
Henri Verbeet
a2f259afff
wined3d: Get rid of the "len" variable in shader_trace_init().
2008-12-11 12:14:30 +01:00
Henri Verbeet
50a87e23e7
wined3d: Fix the IWineD3DVertexShader and IWineD3DPixelShader IUnknown methods.
...
IWineD3DVertexShader isn't supposed to implement IWineD3DPixelShader.
2008-12-09 11:27:32 +01:00
Henri Verbeet
4997bee1bf
wined3d: Add functions to initialize and free shader buffers.
2008-12-09 11:27:13 +01:00
Henri Verbeet
9887d66dad
wined3d: Return early from shader_trace_init() when a NULL pFunction is passed.
...
This is mainly to reduce the size and indentation level of the if-block.
2008-12-08 12:28:27 +01:00
Henri Verbeet
e18629bedd
wined3d: Explicitly pass the shader version to shader_skip_unrecognized().
2008-12-08 12:28:20 +01:00
Henri Verbeet
6e677775ce
wined3d: Explicitly pass the shader version to shader_get_param().
2008-12-08 12:28:17 +01:00
Henri Verbeet
0c954ef743
wined3d: Explicitly pass the shader version to shader_dump_param() and shader_dump_arr_entry().
2008-12-05 11:59:09 +01:00
Henri Verbeet
71a8a77cf9
wined3d: Explicitly pass the shader version to shader_dump_decl_usage().
2008-12-05 11:59:06 +01:00
Henri Verbeet
a13df0e4ef
wined3d: Explicitly pass the version and instruction table to shader_get_opcode().
2008-12-05 11:59:02 +01:00
Henri Verbeet
af1bc3d9ed
wined3d: Remove a redundant condition in shader_get_opcode().
2008-12-05 11:58:58 +01:00
Henri Verbeet
89139b7589
wined3d: Make shader texture format fixups more generic.
...
Based on a patch by Stefan Dösinger. This is more flexible, and allows
the shader backend implementation to be simpler, since it doesn't have
to know about specific formats. The next patch makes use of this.
2008-12-04 11:59:58 +01:00
Henri Verbeet
0ae60765de
wined3d: Make functions static where possible.
2008-12-03 09:47:35 +01:00
Henri Verbeet
d8f6e63541
wined3d: Const correctness fixes for arb_program_shader.c.
2008-11-26 12:05:14 +01:00
Stefan Dösinger
0bf32b12f5
wined3d: Add the ability to duplicate GL pixel shaders.
...
Some stateblock parameters have to be compiled into the GL pixel
shader code, like lines for pixelformat fixups. This leads to problems
when applications switch those settings, requiring a recompilation of
the shader. This patch enables wined3d to have multiple GL shaders for
a D3D shader(pixel shaders only so far) to handle this more
efficiently.
2008-11-25 13:07:03 +01:00
Tobias Jakobi
f4e0dec42e
wined3d: Fix typo in baseshader.c.
2008-10-28 13:26:01 +01:00
Henri Verbeet
57401fcab2
wined3d: Pass the texture type to the shader depth blt function.
2008-10-28 12:33:18 +01:00
Alexandre Julliard
6cfef95ce7
wined3d: Convert source files to utf-8.
2008-10-18 19:21:20 +02:00
Henri Verbeet
5ba40c3d58
wined3d: Make some more GLSL functions private to the backend.
2008-09-24 12:53:23 +02:00
Henri Verbeet
2e76954097
wined3d: Move part of the shader instruction table to the backend.
2008-09-24 12:53:05 +02:00
Stefan Dösinger
bfe7067973
wined3d: Ask the ffp/shader/blit implementation about format support.
...
If a format is not supported natively by opengl, a shader may be able
to convert it. Up to now, CheckDeviceFormat had magic knowldge which
GL extensions lead to which supported format. This patch adds
functions that allow CheckDeviceFormat to ask the actual
implementation for its capabilities.
2008-08-20 12:26:02 +02:00
H. Verbeet
be405c71c0
wined3d: Improve some shader traces.
...
Make it clear the traced values are hexadecimal.
2008-07-16 17:54:23 +02:00
Andrew Talbot
0064976d54
wined3d: Remove unneeded address-of operators from array names.
2008-07-14 11:50:22 +02:00
Stefan Dösinger
e4078fb0ba
wined3d: Set ffp caps in the ffp backend, not the shader backend.
2008-07-11 14:32:53 +02:00
Stefan Dösinger
c48195e417
wined3d: Move shader_fragment_enable to the fragment pipeline implementation.
...
It isn't related to the shader backend any longer. The nvts_enable in
the ffp code isn't quite right as well, it should be moved away once
there is a dedicated nvts fragment pipeline replacement
2008-07-11 14:32:37 +02:00
H. Verbeet
b37cc08721
wined3d: Don't call shader_select() in depth_blt().
...
Calling shader_select() from inside depth_blt() isn't necessarily
safe. shader_select() assumes CompileShader() has been called for the
current shaders, but that depends on STATE_VSHADER / STATE_PIXELSHADER
being applied. That isn't always true when depth_blt() gets called,
with the result that sometimes GLSL programs could be created with no
shader objects attached.
2008-07-10 20:33:29 +02:00
H. Verbeet
54ae3ebfd4
wined3d: Destroy depth_blt resources in the backend's destructor.
...
No need to expose this in the interface.
2008-07-10 12:17:06 +02:00
Stefan Dösinger
3a2743f25d
wined3d: Remove the state table from the shader backend.
2008-07-08 21:08:54 +02:00
Stefan Dösinger
2d7cdc3ec2
wined3d: Remove the DLL load init function.
2008-07-08 21:08:54 +02:00
Andrew Talbot
6ced8a3f55
wined3d: Remove unneeded address-of operators from function names.
2008-07-07 12:32:39 +02:00
Stefan Dösinger
e3bd5b6dcd
wined3d: Use the shader backend to enable / disable atifs and nvts.
...
The previous logic assumed that if NVTS or ATIFS are available they
will be used. This happens to be true for NVTS, but ATIFS is only used
if neither ARBFP nor GLSL are supported. This breaks fixed function
fragment processing on ATI r300 and newer cards
2008-04-24 11:37:17 +02:00
Stefan Dösinger
b1d8af7926
wined3d: Update copyright lines.
2008-04-02 20:22:42 +02:00
Stefan Dösinger
bd68237096
wined3d: Implement TSSARGTEMP with register combiners.
2008-04-02 20:07:40 +02:00
Stefan Dösinger
287f60a2b2
wined3d: Implement D3DTA_TEMP in the GL_ATI_fragment_shader codepath.
2008-04-02 20:07:19 +02:00
Stefan Dösinger
a440051016
wined3d: Add a shader DLL init callback.
2008-03-25 19:49:17 +01:00