Stefan Dösinger
ff767f4984
wined3d: Make the shader backend call CompileShader.
...
A number of considerations contribute to this:
1) The shader backend knows best which shader(s) it needs. GLSL needs
both, arb only one
2) The shader backend may pass some parameters to the compilation
code(e.g. which pixel format fixup to use)
3) The structures used in (2) are different in vs and ps, so a
baseshader::Compile won't work
4) The structures in (2) are wined3d-private structures, so
having a public method in the vtable won't work(its a bad idea
anyway).
2008-11-25 13:06:23 +01:00
Alexandre Julliard
6cfef95ce7
wined3d: Convert source files to utf-8.
2008-10-18 19:21:20 +02:00
Henri Verbeet
2e76954097
wined3d: Move part of the shader instruction table to the backend.
2008-09-24 12:53:05 +02:00
Henri Verbeet
e2bc8dfe3b
wined3d: Use shader_glsl_log() in some more places.
2008-09-23 12:25:32 +02:00
Henri Verbeet
ca28930113
wined3d: Merge pshader_hw_map2gl() and vshader_hw_map2gl().
...
This isn't the prettiest way to merge those functions, but it's a start.
2008-09-23 12:25:27 +02:00
Stefan Dösinger
a580325a47
wined3d: Remove some more junk code.
2008-08-28 11:24:49 +02:00
Stefan Dösinger
b1d8af7926
wined3d: Update copyright lines.
2008-04-02 20:22:42 +02:00
Stefan Dösinger
a66fb40d83
wined3d: Move shader generation into the shader backend.
...
Generating the shader ID and parts of the shader prolog and epilog was
done by the common vertexshader.c / pixelshader.c, which is ugly.
This patch doesn't get rid of all the uglyness, somewhen we'll still
have to sort out the relationship of [arb|glsl]_generate_shader and
[arb|glsl]_generate_declarations.
2008-03-25 19:35:58 +01:00
James Hawkins
c2a627c6e8
janitorial: Remove links to any microsoft site.
2008-03-01 12:17:07 +01:00
Austin English
3471f841a1
wined3d: Spelling fixes.
2008-01-18 12:53:33 +01:00
Stefan Dösinger
ea093f4a38
wined3d: Multiply the half pixel correction with .w.
2007-12-28 11:28:59 +01:00
Stefan Dösinger
2eab3d5c11
wined3d: Ignore tesselated and unused streams when comparing attribs.
2007-12-18 13:23:16 +01:00
Stefan Dösinger
54fa712981
wined3d: Initialize output texcoord .w to 1.0 if needed.
...
The GL_ARB_vertex_program extension does not define a standard value for
output texture coordinates. This makes problems when using vertex
shaders with fixed function fragment processing because fffp divides the
texture coords by its .w component. This means that gl shaders have to
write to the .w component of texture coords. Direct3D shaders however
do not.
2007-12-07 14:54:22 +01:00
Stefan Dösinger
1cc7530332
wined3d: Ignore unused attributes when generating the swizzle array.
2007-12-06 13:48:59 +01:00
Stefan Dösinger
218de935d1
wined3d: Fix a sign mistake in the code creating the sorted attrib.
2007-11-28 13:40:29 +01:00
Stefan Dösinger
959212304d
wined3d: Track vertex declaration changes on vertex shaders.
...
If an attribute has type D3DDECLTYPE_D3DCOLOR, the red and blue channels
are swizzled in the shader. Since the attribute is stored in the vertex
declaration and not the vertex shader, it can change by setting a new
vertex declaration. If this happens, we have to recompile the shader
with the swizzling of that specific attribute turned on or off.
2007-11-21 12:18:02 +01:00
Stefan Dösinger
cfc5725760
wined3d: Move glsl shader destruction to the glsl shader backend.
2007-11-21 12:06:27 +01:00
Stefan Dösinger
af4edef5e1
wined3d: Move destroying the glsl vshader into a separate function.
2007-11-21 12:06:15 +01:00
Stefan Dösinger
bd97580683
wined3d: Move IUnknown functions to IWineD3DBaseShader.
2007-11-20 12:53:07 +01:00
Stefan Dösinger
683c258ff4
wined3d: Remove a hack that slipped in.
2007-11-16 13:23:09 +01:00
Stefan Dösinger
edb78187a9
wined3d: Hardcode local constants into the shader if possible.
2007-11-14 11:51:26 +01:00
Francois Gouget
41643327ee
wined3d: Add trailing '\n's to two shader_addline() calls.
2007-11-13 13:35:55 +01:00
Stefan Dösinger
c7c785861a
wined3d: Replace the position fixup mul-add-add with a MAD.
2007-11-08 12:03:39 +01:00
Stefan Dösinger
fb0dde7b27
wined3d: Relative addressing offsets are limited to [-64; 63] in arb.
2007-11-08 11:54:43 +01:00
Stefan Dösinger
3febe738ab
wined3d: Handle ps 3.0 varyings in a different way.
2007-11-06 13:34:57 +01:00
Stefan Dösinger
822030e329
wined3d: Enable the mNxN implementation for pixel shaders.
2007-10-01 13:00:19 +02:00
Stefan Dösinger
20872abc9c
wined3d: Add sincos support to arb shaders.
2007-09-27 11:57:41 +02:00
Stefan Dösinger
daf2290ea4
wined3d: Implement the nrm instruction in arb.
2007-09-27 11:57:29 +02:00
Stefan Dösinger
09fa208d7a
wined3d: Add crs and pow instruction support.
2007-09-27 11:57:12 +02:00
Stefan Dösinger
a305af0b30
wined3d: Fix the z range.
2007-09-11 13:47:36 +02:00
Stefan Dösinger
36aef3dc54
wined3d: Hold an internal reference on pixel and vertex shaders.
2007-08-28 11:55:53 +02:00
Stefan Dösinger
a1f83aae8e
wined3d: rsq and rcp use the .w component if no swizzle is given.
2007-07-03 12:29:34 +02:00
H. Verbeet
1d4042cee1
wined3d: Implement texldl.
2007-06-28 11:01:15 +02:00
Stefan Dösinger
97b1d0692c
wined3d: Skip the start offset to the source array in IWIneD3DVertexShaderImpl_SetLocalConstantsF.
2007-06-25 20:03:34 +02:00
Stefan Dösinger
a460a2df43
wined3d: Store the gl information in a per adapter structure and initialize it only once.
2007-06-11 13:51:06 +02:00
H. Verbeet
7a9bb1db28
wined3d: Pass NULL for the stateBlock parameter to shader_get_registers_used() in IWineD3DVertexShaderImpl_SetFunction.
2007-06-08 11:57:33 +02:00
H. Verbeet
c3c5724789
wined3d: WINED3DSIO_POW should use the absolute value of the first source register.
2007-05-11 13:24:15 +02:00
Fabian Bieler
e28630bc32
wined3d: Remove usesFog flag from IWineD3DVertexShaderImpl.
2007-04-23 13:55:45 +02:00
Stefan Dösinger
0d88a38238
wined3d: Dirtify the shader and declaration states if the bound interface is destroyed.
2007-04-12 16:09:12 +02:00
Fabian Bieler
878e02538e
wined3d: Remove fog coordinate clamping in the vertex shader.
2007-03-23 12:30:58 +01:00
H. Verbeet
fc5f36f037
wined3d: Fix IWineD3DPixelShader_GetFunction / IWineD3DVertexShader_GetFunction.
2007-03-08 11:58:50 +01:00
H. Verbeet
2384bdde9d
wined3d: Remove broken software shaders.
2007-03-07 11:52:17 +01:00
H. Verbeet
71a0c6e482
wined3d: The texldl instruction takes 3 arguments.
2007-03-05 12:06:40 +01:00
H. Verbeet
2c85e5e8a3
wined3d: Store GLSL programs in a hash table rather than a linked list.
2007-02-28 13:35:23 +01:00
H. Verbeet
b299395f30
wined3d: Fix matching WINED3DDECLUSAGE_POSITION against WINED3DDECLUSAGE_POSITIONT.
2007-02-28 13:32:53 +01:00
Stefan Dösinger
2f96220b3e
6/10: WineD3D: rsq and rcp instructions may need a default swizzle in arb.
...
ARB shaders need a swizzle for the RSQ and RCP instructions, while d3d
shaders do not. The DirectX sdk says that the x component is used if
no swizzle is given.
2007-02-15 17:21:27 +01:00
H. Verbeet
34e74ffc2a
wined3d: Use WINED3D_OK rather than D3D_OK.
2007-02-15 11:15:50 +01:00
H. Verbeet
efed9aea1f
d3d8: Move loading local d3d8 vertex shader constants from wined3d to d3d8.
2007-02-14 13:54:55 +01:00
H. Verbeet
32e5cac2be
wined3d: Get rid of the vertexDeclaration field in IWineD3DVertexShaderImpl.
2007-02-14 13:54:29 +01:00
H. Verbeet
beed89cde4
wined3d: The sincos instruction is valid for ps/vs 2.1 as well.
2007-01-19 12:29:17 +01:00