H. Verbeet
85ec834f7a
wined3d: Don't hardcode type sizes for shader constants.
2006-06-07 11:47:46 +02:00
Ivan Gyurdiev
5f5969b3c5
wined3d: Remove constant type field in stateblock.
...
It is wrong to maintain a mapping from a constant index to a type
field, because different constant types do not share an index -
boolean constant 0 is supposed to co-exist with floating point
constant 0, not replace it. Drawprim and other code using the type
array to decide whether to look up a constant in bools, floats, or
ints is wrong - you can't make that decision based on the index.
2006-06-06 11:58:54 +02:00
Ivan Gyurdiev
0909df6711
wined3d: Rename vertex shader constants.
...
From const%lu to C%lu for consistency (to match pshaders).
2006-06-06 11:50:36 +02:00
Ivan Gyurdiev
79029c1099
wined3d: Add limits for ps_2_x.
2006-06-06 11:50:20 +02:00
Ivan Gyurdiev
aec2e3e46d
wined3d: Trace improvements.
2006-06-06 11:49:03 +02:00
Ivan Gyurdiev
2c232990ee
wined3d: pshader defi has 5 parameters.
2006-06-06 11:48:48 +02:00
Stefan Dösinger
2c3adec595
wined3d: Render target locking fixes.
2006-06-05 20:59:41 +02:00
Stefan Dösinger
5de8cd3bd6
wined3d: Adjust the video mem when dropping the pow2 size in GDISurface.
2006-06-01 11:44:38 +02:00
Vitaliy Margolen
93fd4c12f8
wined3d: Properly destroy texture object if we failed to create its surfaces.
2006-05-30 12:34:26 +02:00
Stefan Dösinger
ebcef4a5f6
wined3d: Do not disable GL_BLEND when alpha blending is active.
2006-05-30 12:23:18 +02:00
Stefan Dösinger
21218c8587
wined3d: Release the memory in IWineGDISurface::PrivateSetup before calling GetDC.
2006-05-30 12:23:07 +02:00
Jason Green
473ce80fa2
wined3d: Add ability to generate GLSL shader objects for vertex and pixel shaders.
2006-05-27 11:01:05 +02:00
Jason Green
0161d6b636
wined3d: Final move of the GLSL registry check (hopefully).
2006-05-27 10:57:32 +02:00
Stefan Dösinger
34a959c6eb
wined3d: Implement IWineD3DSurface::BltFast.
2006-05-26 20:29:48 +02:00
Stefan Dösinger
9d5849d9bd
wined3d: Fix IWineGDISurface::SaveSnapshot.
2006-05-26 20:15:35 +02:00
Stefan Dösinger
0ce3cb2379
wined3d: Disable the depth test in UnlockRect
2006-05-26 20:14:38 +02:00
Jason Green
c60f296b70
wined3d: Fix regression introduced by recent multitexture patch.
2006-05-26 20:14:31 +02:00
Jason Green
cef19b5769
wined3d: Move the GLSL registry check again.
2006-05-26 11:56:11 +02:00
Phil Costin
163ee76592
wined3d: Shader caps fix - code relocation.
2006-05-25 20:17:45 +02:00
Roderick Colenbrander
54e5f9c465
wined3d: Dynamicly load GL_ARB_multitexture functions.
2006-05-25 20:17:32 +02:00
Stefan Dösinger
5b8b776431
wined3d: Small rhw vertex fix.
...
Fix the one pixel displacement and move the glOrtho code in a common
function.
2006-05-25 20:09:57 +02:00
Alexandre Julliard
e8d4c2e674
wined3d: Fixed a compiler warning.
2006-05-25 11:09:46 +02:00
Stefan Dösinger
d5f95961f1
wined3d: Fog fixes.
2006-05-25 10:36:40 +02:00
Stefan Dösinger
40d3cc5ee4
wined3d: Turn around the image in LockRect.
2006-05-25 10:35:58 +02:00
Stefan Dösinger
e18c89b3f4
wined3d: Silence the offscreen surface creation fixme.
2006-05-25 10:35:10 +02:00
Stefan Dösinger
93db443319
wined3d: Color keying emulation.
2006-05-25 10:34:53 +02:00
Stefan Dösinger
e902cd119f
wined3d: Swapchain and back buffer corrections + tests.
2006-05-24 13:56:55 +02:00
Roderick Colenbrander
9c018fd877
wined3d: Fix ARB_imaging abuse.
2006-05-24 10:52:28 +02:00
Alexandre Julliard
63199ca022
wined3d: Fixed a couple of boolean comparisons against TRUE.
2006-05-24 10:46:06 +02:00
Jason Green
d204540d1f
wined3d: Replaced USING_GLSL define with a new wined3d_settings option based on the registry.
2006-05-24 10:40:35 +02:00
Jason Green
a67488a26e
wined3d: Add function to print the infolog of a GLSL shader on errors.
...
With assistance from H. Verbeet.
2006-05-24 10:37:33 +02:00
Stefan Dösinger
29a8dd47a8
wined3d: Remove a double cap flag.
2006-05-24 10:03:34 +02:00
Stefan Dösinger
89ca7fffd4
wined3d: Remove an unnecessary NULL check.
2006-05-24 10:03:28 +02:00
Stefan Dösinger
a55da88d0b
wined3d: Do not addref a NULL backbuffer in IWineD3DSwapChain::GetBackBuffer.
2006-05-23 17:52:06 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Stefan Dösinger
158691ea3b
wined3d: OpengGL accelerated blits.
...
Implement some basic opengl accelerated blts from and to render
targets. It's not perfect yet, but enought to make some D3D apps
happy. For now the only supported operations are:
- Full screen back -> Front buffer: Just call present
- Offscreen surface -> render target
- Render target -> offscreen surface(slow)
- render target colorfill
2006-05-23 12:41:31 +02:00
Stefan Dösinger
9d75802a21
wined3d: Surface pixel format conversion code.
2006-05-23 12:37:27 +02:00
Ivan Gyurdiev
7b861b3c03
wined3d: Simplify input/output modifier line handling.
2006-05-22 11:41:23 +02:00
Ivan Gyurdiev
cb973648ab
wined3d: Clean up register use maps.
2006-05-22 11:40:38 +02:00
Ivan Gyurdiev
d59eeb3ee5
wined3d: Allow use of pixel shaders with drawStridedSlow.
2006-05-22 11:40:00 +02:00
Ivan Gyurdiev
438d88e1e8
wined3d: Only run parse_decl_usage on vshader INPUT registers.
2006-05-22 11:38:55 +02:00
Jason Green
4a1375bdd6
wined3d: Simplify generate_base_shader() when checking for USING_GLSL usage.
2006-05-20 17:38:09 +02:00
Jason Green
683e5bfc55
wined3d: Move PARAM C[] program.env[] into baseshader and out of vertex shaders.
2006-05-20 17:37:48 +02:00
Stefan Dösinger
cfcdb6515b
wined3d: Sort of oversized surface support.
2006-05-20 14:06:09 +02:00
Stefan Dösinger
672fa65334
wined3d: Add more device caps.
2006-05-20 14:05:38 +02:00
Stefan Dösinger
ebcbda72c4
wined3d: Allow SYSTEMMEM textures and surfaces.
2006-05-20 14:05:23 +02:00
Stefan Dösinger
566cdcf55c
wined3d: Implement IWineD3DDevice::SetDisplayMode.
2006-05-20 14:05:06 +02:00
Phil Costin
df3902e6c1
wined3d: Trace output corrections and cleanups.
2006-05-20 13:58:31 +02:00
Phil Costin
1b320431b8
wined3d: Check registry for UseGLSL enabled.
2006-05-18 16:40:32 +02:00
Ivan Gyurdiev
42b89791ff
wined3d: Take predication tokens into account.
...
Each instruction can have a predication token. Account for it in the
trace pass, register count pass, and store it in the SHADER_OPCODE_ARG
structure for generation. MSDN claims the token is at the end of the
instruction, but that's not true - testing a demo, which lets me
manipulate the shader shows the predication token is the first source
token immediately following the destination token.
2006-05-18 10:32:54 +02:00
Ivan Gyurdiev
fa62d9d3b4
wined3d: Parameter trace corrections.
2006-05-18 10:32:22 +02:00
Ivan Gyurdiev
3d905baf50
wined3d: SETP takes 3 parameters.
2006-05-18 10:32:08 +02:00
Ivan Gyurdiev
c65a86828c
wined3d: Use COLOROUT/DEPTHOUT for pixel shaders 2.0+.
...
As previously mentioned, RASTOUT is invalid on pixel shaders.
On shaders 1.x, r0 is treated as the color output register:
http://www.gamedev.net/columns/hardcore/dxshader3/page2.asp
That's what we currently do in all cases, change it not to do so
for shaders >= 2.0. Support COLOROUT/DEPTHOUT instead.
2006-05-17 10:56:25 +02:00
Ivan Gyurdiev
174734e4a2
wined3d: LRP is not a valid ARBvp code.
2006-05-17 10:56:01 +02:00
Ivan Gyurdiev
8470e54bdf
wined3d: Remove detailed traces from map2gl/input_modifiers functions.
2006-05-17 10:55:50 +02:00
Ivan Gyurdiev
c05bc5d9c1
wined3d: Write "unrecognized_register" in fallback case for get_register_name().
2006-05-17 10:55:39 +02:00
Ivan Gyurdiev
746d1b1cd3
wined3d: Modify shader_dump_param() to take into account address token.
...
Currently we hardcode a0.x, which I think is correct for shaders 1.0.
However, for shaders 2.0, we must look into the address token, and
print the register there. Handle both cases to correct the trace.
2006-05-17 10:55:11 +02:00
Ivan Gyurdiev
03b67e3030
wined3d: Use shader_get_param() in trace pass, reg. count pass, generation pass.
...
Change the trace pass, the register counting pass, and the hw
generator pass to take into account the new get_params() function. For
hw generation, store the address tokens into the SHADER_OPCODE_ARG
structure, so they're available to generator functions.
2006-05-17 10:54:23 +02:00
Ivan Gyurdiev
404eff792f
wined3d: Add shader_get_param() fn, which processes address tokens.
...
Add a new function to process parameters.
On shaders 1.0, processing parameters amounts to *pToken++.
On shaders 2.0+, we have a relative addressing token to account for.
This function should be used, instead of relying on num_params everywhere.
2006-05-17 10:53:18 +02:00
Ivan Gyurdiev
53d240a3e0
wined3d: Do not rely on num_params to skip unhandled tokens in shaders 2.0.
2006-05-17 10:52:37 +02:00
Ivan Gyurdiev
d4dd9869b8
wined3d: Allow multiple output modifiers.
2006-05-17 10:51:47 +02:00
Ivan Gyurdiev
c94ecdff61
wined3d: Fix SINCOS parameters.
...
SINCOS has 4 parameters in shaders 2.0.
It has 2 parameters in shaders 3.0.
It's undefined in shaders 1.0.
2006-05-17 10:50:33 +02:00
Ivan Gyurdiev
6b5d076394
wined3d: DEFI takes 5 parameters.
...
According the spec and the Painkiller log, DEFI has 5 parameters on
vertex shaders.
2006-05-17 10:50:10 +02:00
Paul Vriens
ba438d4f5d
wined3d: Correctly define the number of possible parameters.
2006-05-16 12:53:28 +02:00
Stefan Dösinger
f7d89201c1
wined3d: Unset the ddraw primary when it is released.
2006-05-16 12:42:12 +02:00
Stefan Dösinger
2a35f769e3
wined3d: Add missing render states to the dumping function.
2006-05-16 12:41:51 +02:00
Stefan Dösinger
7cd41b944b
wined3d: Implement IWineD3DDevice::SetFrontBackBuffers.
2006-05-16 12:41:41 +02:00
Ivan Gyurdiev
8b7401c39a
wined3d: Shaders: share dump_param function, version functions.
2006-05-15 16:07:31 +02:00
Ivan Gyurdiev
7757d7bc5c
wined3d: Fix incorrect sizeof.
2006-05-15 16:04:07 +02:00
Francois Gouget
f7c24f37ad
Various trace fixes.
...
Add trailing '\n's to trace calls.
Remove spaces before '\n'.
2006-05-15 15:05:09 +02:00
Francois Gouget
e739ba9551
Assorted spelling fixes.
2006-05-15 15:05:05 +02:00
Stefan Dösinger
eaec7793d5
wined3d: Avoid a NULL dereference in RealizePalette.
2006-05-15 14:03:06 +02:00
Stefan Dösinger
34b1482fdc
wined3d: Render state additions and fixes.
2006-05-15 14:02:57 +02:00
Stefan Dösinger
8af7dd5dea
wined3d: Nonpow2 repacking support for GetDC.
2006-05-15 14:02:37 +02:00
Stefan Dösinger
daa6a3d714
wined3d: Support for single buffering.
2006-05-15 14:02:18 +02:00
Stefan Dösinger
2f724834f8
wined3d: Implement IWineGDISurface.
2006-05-15 14:02:03 +02:00
Stefan Dösinger
9abdac6aaa
wined3d: Implement IWineD3DDevice::ProcessVertices.
2006-05-15 13:57:17 +02:00
Ivan Gyurdiev
b2d96086e5
wined3d: Set pIndexData to 0 in DrawIndexedPrimitiveUP.
2006-05-11 12:11:55 +02:00
Ivan Gyurdiev
257692e087
wined3d: Initialize volume format.
2006-05-11 12:11:42 +02:00
Ivan Gyurdiev
c61af3af8d
wined3d: Share shader_dump_ins_modifiers().
...
Share shader_dump_ins_modifiers(), and make vertex shaders use it.
The saturate modifer (_sat) is valid on vs_3_0+, and it isn't being
shown in the trace.
2006-05-11 12:10:59 +02:00
Jason Green
e9927d6ffd
wined3d: Further split GLSL & ARB_v/f_program generation and allow GLSL functions to be called.
2006-05-10 12:20:39 +02:00
Jason Green
246677ae46
wined3d: Modified the opcode tables (and struct) to include a pointer to a GLSL generator function.
2006-05-10 12:20:08 +02:00
Jason Green
68f75555d3
wined3d: Use GenerateShader in pixel shaders and remove old function.
2006-05-10 12:19:42 +02:00
Jason Green
087c67c459
wined3d: Add GenerateShader function to pixel shaders.
2006-05-10 12:19:19 +02:00
Jason Green
604579ed62
wined3d: Use new GenerateShader function for vertex shaders.
2006-05-10 12:19:01 +02:00
Jason Green
36b0b9cc1c
wined3d: Added new GenerateShader function for Vertex Shaders & declare generate_base_shader().
2006-05-10 12:18:08 +02:00
Jason Green
d982954808
wined3d: Created generate_base_shader which will be shared by pixel & vertex shaders.
2006-05-10 12:17:18 +02:00
Jason Green
c15447d4b0
wined3d: Rename the TEMP variables in vertexshader.c to R from T for consistency.
2006-05-10 12:17:01 +02:00
Jason Green
cc2ea9e08c
wined3d: Place # of textures, addresses, & temps used inside the baseShader struct to prepare for GenerateShader merge.
2006-05-10 12:16:22 +02:00
Jason Green
653e71d774
wined3d: Further split up GenerateProgramArbHW for pixelshaders.
2006-05-10 12:16:02 +02:00
Jason Green
f015124ae0
wined3d: Move D3DSIO_M#x# vertex shader opcodes to a more standard function.
2006-05-10 12:15:35 +02:00
Jason Green
eee6fc9277
wined3d: Move DCL, DEF operations out of Generate loop and into separate functions.
2006-05-10 12:15:12 +02:00
Jason Green
5308e026d1
wined3d: Move program_dump_decl_usage into baseshader.
2006-05-10 12:14:39 +02:00
Michael Stefaniuc
a87520036f
janitorial: Remove redundant NULL pointer checks before HeapFree'ing them.
...
Some HeapFree's are hidden behind macros. Found by smatch.
2006-05-10 11:31:41 +02:00
Ivan Gyurdiev
9d4960bfcb
wined3d: Clean up some dead code.
2006-05-10 11:29:44 +02:00
Ivan Gyurdiev
b187242ab6
wined3d: Break out texture instruction processing.
2006-05-10 11:28:49 +02:00
Ivan Gyurdiev
cdfe848b6d
wined3d: Break out arithmetic instruction processing.
2006-05-10 11:28:11 +02:00
Ivan Gyurdiev
320e33dcb3
wined3d: Merge register counting pass.
2006-05-10 11:26:01 +02:00
Ivan Gyurdiev
aadafd64da
wined3d: Make register counting pass the same.
2006-05-10 11:24:33 +02:00
Stefan Dösinger
7e12e2ac5b
wined3d: Update the DIB section's palette on GetDC.
2006-05-10 11:23:22 +02:00