Stefan Dösinger
3518747165
wined3d: Pixel format cleanup.
2006-06-21 12:15:50 +02:00
Louis. Lenders
6601e8eefe
wined3d: Add an "\n" to a fixme to fix an overflow.
2006-06-21 11:16:15 +02:00
Jason Green
e0ccbeb282
wined3d: Bind correct number of samplers for GLSL shaders.
...
We are only checking against GL_MAX_TEXTURES when binding samplers,
when we should be checking against the maximum number of samplers that
the card supports. Spotted by H. Verbeet.
2006-06-21 11:16:07 +02:00
Jason Green
0b09ecb291
wined3d: Move D3DSIO_DEF instruction for ARB shaders into arb_program_shader.c.
2006-06-20 11:28:15 +02:00
Jason Green
99c855e6ae
wined3d: Fix DEF instructions in GLSL for non-Nvidia platforms.
...
- NVidia allows "const vec4 = {1.0, 2.0, 3.0, 4.0};", even though
that's not part of the spec.
- It should be "const vec4 = vecr4(1.0, 2.0, 3.0, 4.0);"
- This patch fixes this for D3DSIO_DEF and D3DSIO_DEFI.
2006-06-20 11:28:05 +02:00
Jason Green
c13f097de3
wined3d: Correct implementation of D3DSIO_LOOP.
...
I initially misread the specification. src0.x is the iteration count,
not the max amount for the loop register. This fixes that.
2006-06-19 11:11:45 +02:00
Jason Green
fd83de7129
wined3d: Fix lookup for LOOP register.
2006-06-19 11:11:24 +02:00
Jason Green
9afa540eb5
wined3d: Added correct cast support for gl_FogFragCoord and gl_PointSize output registers.
2006-06-19 11:11:05 +02:00
Jason Green
406ec20459
wined3d: Load boolean and integer constants into the GLSL shader program.
2006-06-19 10:59:58 +02:00
Jason Green
f444009bfb
wined3d: Implement locally defined boolean and integer constants in GLSL.
2006-06-19 10:59:13 +02:00
Jason Green
34d271bab6
wined3d: Add preliminary support for constant boolean and integer registers in GLSL.
...
- Separate the declaration phase of the shader string generator into
the arb and glsl specific files.
- Add declarations and recognition for application-sent constant
integers and booleans (locally defined ones will follow).
- Standardize capitilization of pixel/vertex specific variable names.
2006-06-19 10:50:14 +02:00
Jason Green
2d8e05f8a1
wined3d: Move constant loading into target-specific files.
...
- Moves GLSL constant loading code into glsl_shader.c and out of the
over-populated drawprim.c.
- Creates a new file named arb_program_shader.c which will hold code
specific to ARB_vertex_program & ARB_fragment_program.
- Remove the constant loading calls from drawprim.c
2006-06-19 10:49:52 +02:00
Jason Green
7f18b4e5fa
wined3d: Remove dead vertex shader code.
2006-06-19 10:39:36 +02:00
Paul Vriens
edaac6f696
wined3d: GetScissorRect should use zero-based scissorBox (Coverity).
2006-06-16 14:42:36 +02:00
Francois Gouget
9eb81363ad
Add trailing '\n's to ok() calls.
...
Remove spaces before '\n'.
2006-06-16 11:32:42 +02:00
Francois Gouget
11ae0f6386
Assorted spelling fixes.
2006-06-16 11:32:29 +02:00
H. Verbeet
701ce97d65
wined3d: Add and use GL_EXT_fog_coord defines.
2006-06-16 11:29:31 +02:00
Stefan Dösinger
3862f8e3d7
wined3d: Support more than one back buffer.
2006-06-15 16:51:41 +02:00
Stefan Dösinger
5c3c5903a5
wined3d: Correct vertex fog for transformed vertices and correctly
...
handle non-vertex, non-table fog.
2006-06-15 12:24:09 +02:00
Jason Green
cc06ed3d53
wined3d: Implement more GLSL instructions.
...
- Implemented: D3DSIO_SGN, LOOP, ENDLOOP, LOGP, LIT, DST, SINCOS
- Process instruction-based modifiers (function existed, it just
wasn't being called)
- Add loop checking to register maps.
- Renamed "sng" to "sgn" for D3DSIO_SGN - it's not handled anywhere
except for GLSL, so won't matter.
2006-06-15 12:20:20 +02:00
Alexandre Julliard
836b5c7e93
wined3d: Use unsigned int instead of size_t to avoid printf format warnings.
2006-06-13 14:14:20 +02:00
Ivan Gyurdiev
45dbb78d73
wined3d: Fix params for DP2ADD/TEXLDD.
...
DP2ADD is valid on pshaders 2.0 and above, has 4 parameters.
TEXLDD is valid on pshaders 2.x and above, has 5 parameters.
2006-06-13 11:40:23 +02:00
Ivan Gyurdiev
8c6ee8df0d
wined3d: Mark instructions without a destination token.
...
There are a total of 17 instructions without a destination token. Of
those 9 have num_params != 0, which means that we will not process any
of them correctly, because we assume the first token (if present) is a
destination token.
Those are basically all the flow control instructions, which we plan to
support very soon. They have source tokens, and no destination. Add a
flag that marks them up to the ins table. Use this flag in the trace
pass, and generation pass.
2006-06-13 11:40:22 +02:00
Ivan Gyurdiev
14a52e5c09
wined3d: Keep pshader and vshader constants in GLSL separate.
...
GLSL uniforms have as scope the entire program.
To prevent conflicts, name pshader and vshader constants differently.
Based on a patch by Jason Green.
2006-06-13 11:40:22 +02:00
Ivan Gyurdiev
0d08316523
wined3d: Improve Sampler support on 2.0 and 3.0 shaders.
...
- track sampler declarations and store the sampler usage in reg_maps structure
- store a fake sampler usage for 1.X shaders (defined as 2D sampler)
- re-sync glsl TEX implementation with the ARB one (no idea why they diverged..)
- use sampler type in new TEX implementation to support 2D, 3D, and Cube sampling
- change drawprim to bind pixel shader samplers
Additional improvements:
- rename texture limit to texcoord to prevent confusion
- add sampler limit, and use that for samplers - *not* the same as texcoord above
2006-06-13 11:40:22 +02:00
Ivan Gyurdiev
e99926ee06
wined3d: Cast more things.
...
Anything with a swizzle has to be casted to vec4, or it won't work properly.
There's multiple ways to do this, for the moment pick the easiest one.
2006-06-13 11:40:22 +02:00
Ivan Gyurdiev
a1f4dfe4e3
wined3d: Add support for shader model 3.0 I/O registers.
...
SM 3.0 can pack multiple "semantics" into 12 generic input/output registers.
To support that, define temporaries called IN and OUT, and use those as
the output registers. At the end of the vshader, unpack the OUT temps
into the proper GL variables. At the beginning of the pshader, pack the
GL variables back into 12 IN registers.
2006-06-13 11:40:22 +02:00
Ivan Gyurdiev
1a3003338f
wined3d: Trivial cleanups
...
- compiler warnings and errors should be FIXME
- remove obsolete comment, and change variable type.
2006-06-13 11:40:22 +02:00
Ivan Gyurdiev
a42925ee09
wined3d: Register map cleanups.
...
Various cleanups:
- do not use DWORD as a bitmask, that places artificial limit of 32 on
registers
- track attributes that are used and declare only those
- move declarations function call in pshader/vshader to allow us to
insert pixel or vertex specific code between the declarations and
the rest of the code
- remove redundant 0 intializers
- remove useless continue statement
2006-06-13 11:40:22 +02:00
Ivan Gyurdiev
17b0d26c1e
wined3d: Share trace pass
...
Now that the declaration function is out of the way, the tracing pass,
which is very long and 100% the same can be shared between pixel and
vertex shaders.
The new function is called shader_trace_init(), and is responsible for:
- tracing the shader
- initializing the function length
- setting the shader version [needed very early]
2006-06-13 11:40:22 +02:00
Ivan Gyurdiev
9bae7755ab
wined3d: Rework dcl processing.
...
The new function is called in pass 2 (getister counting/maps), and
it's now in baseshader. It operates on all INPUT and OUTPUT registers,
which, in addition to the old vertex shader input declarations covers
Shader Model 3.0 vshader output and pshader input declarations. The
result is stored into the reg_map structure.
2006-06-13 11:40:21 +02:00
Ivan Gyurdiev
f144d58ac2
wined3d: The namedArrays code path is dead (always FALSE).
...
Delete the entire namedArrays code path and all its dependencies (one
of which is quite long - storeOrder in drawprim is always FALSE, for
example). Delete declaredArrays, and make its code path the default.
2006-06-13 11:40:21 +02:00
Jan Zerebecki
c6449b5a91
wined3d: Move a checkGLcall to it's gl call inside an "if".
2006-06-13 10:51:07 +02:00
Jan Zerebecki
7528fc0de1
wined3d: Fix stencil related render states.
2006-06-13 10:50:55 +02:00
Jan Zerebecki
cf8833c467
wined3d: Enable two sided stencil in the caps.
2006-06-13 10:46:29 +02:00
Jan Zerebecki
df3e078b20
wined3d: Also print the format like a fourcc if unknown in debug_d3dformat.
2006-06-13 10:35:14 +02:00
H. Verbeet
405e11ea62
wined3d: Cleanup GetSrcAndOpFromValue().
...
- Cleanup GetSrcAndOpFromValue().
- Use naming more consistent with the rest of the file.
2006-06-12 16:07:58 +02:00
Jason Green
d822496dee
wined3d: Map D3DSIO_DEF to it's GLSL generating function for vertex shaders.
2006-06-12 13:21:46 +02:00
Alexandre Julliard
dbfb3739aa
wined3d: Make all the local shader functions static.
2006-06-10 13:22:27 +02:00
Alexandre Julliard
e9cbc66e93
wined3d: Make the virtual table functions static where possible.
2006-06-10 13:15:32 +02:00
Jason Green
42dd4653e3
wined3d: Change fog output variable name for GLSL shaders.
2006-06-10 12:43:10 +02:00
Jason Green
e8c97e9421
wined3d: Fix regression from register maps switch for ARB shaders.
...
I missed a register mask in the move to share the shader_hw_def()
function between pixel and vertex shaders for ARB shaders. Fixed
that, and made the GLSL version use the same mask for consistency.
2006-06-10 12:43:02 +02:00
Ivan Gyurdiev
a09c941677
wined3d: Enable CND/CMP for SHADER_ARB.
2006-06-10 12:42:09 +02:00
Ivan Gyurdiev
621f075fb9
wined3d: Print out sampler state names.
2006-06-10 12:41:54 +02:00
Ivan Gyurdiev
d44d0b5edb
wined3d: Downgrade Get*Shader FIXME to TRACE.
2006-06-10 12:41:44 +02:00
Jason Green
08295f4cfc
wined3d: GLSL shader cleanup patch.
...
- Based on comments from H. Verbeet
- Changed the distinction from .rgba & .xyzw masks to only use .xyzw
in GLSL shaders. They are interchangeable, and only served to make
the trace look more intuitive, but they don't always apply as-is, so
we'll just leave everything to .xyzw.
- Got rid of the "UseProgramObjectARB(0)" call in drawprim. If there
is no shader set on the next primitive, then that primitive will
call UseProgramObjectARB(0) when it begins to draw.
2006-06-09 21:09:03 +02:00
Jason Green
d5d4568450
wined3d: Allow drawPrim to create and use the GLSL program.
2006-06-09 15:20:06 +02:00
Jason Green
b67cda248d
wined3d: Add GLSL helper functions to Device.
...
- Add functions to attach & detach shader objects, create and delete programs, and maintain the list of programs.
- Add a list of GLSL shader programs to the device which is initialized on Init3D(), and deleted on Release().
2006-06-09 15:19:52 +02:00
Jason Green
ca7976c34f
wined3d: Map vertex shader instructions to GLSL generating functions.
2006-06-09 15:19:09 +02:00
Jason Green
5798356d21
wined3d: Map pixel shader instructions to GLSL generating functions.
2006-06-09 15:19:02 +02:00
Jason Green
d59714b78c
wined3d: Prototype the GLSL functions for use with pixel and vertex shaders.
2006-06-09 15:14:34 +02:00
Jason Green
806aaa1287
wined3d: Added more declarations to GLSL.
...
- Declare more variable names for GLSL programs.
- Some of these won't need to be declared eventually, but it doesn't hurt to do it for now.
- Correct output name for pixel shaders (gl_FragColor instead of glFragColor).
2006-06-09 15:14:22 +02:00
Jason Green
ca70d13af4
wined3d: Unified float constant register mapping between ARB pixel and vertex shaders.
...
- Got rid of the separate constant maps.
- Side effect of this is that the map is a bit larger for pixel shaders than it needs to be
2006-06-09 14:36:50 +02:00
Jason Green
0c59ca6448
wined3d: Add the bulk of the GLSL string generation functions.
...
- Add a new file glsl_shader.c which contains almost every GLSL specific function we'll need
- Move print_glsl_info() into glsl_shader.c
- Move the shader_reg_maps struct info into the private header, and make it part of SHADER_OPCODE_ARG.
- Create a new shared ps/vs register map for float constants (future patch will make ARB programs use this, too)
2006-06-09 13:47:55 +02:00
Jason Green
1f1057fc9b
wined3d: Move constant loading out of DrawPrimDrawStrided() and enable
...
loading float constants for GLSL.
- DrawPrim is just too big of a function. This separates the passing
of constants to the shader into new functions.
- Fixes an off-by-one error when loading vertex declaration constants
(should be <, not <=)
- Adds a function for GLSL loading of constants (aka Uniforms)
- Adds a GLSL program variable to the stateblock and sets it to 0 (a
future patch will actually create this program)
2006-06-09 13:26:51 +02:00
Ivan Gyurdiev
ac46320f57
wined3d: TEXREG2GB is valid on pshaders 1.1.
2006-06-07 15:23:23 +02:00
Ivan Gyurdiev
83a9666f9c
wined3d: Fix NULL dereference in generator function.
2006-06-07 15:23:17 +02:00
Ivan Gyurdiev
4d66615bbb
wined3d: Fix missing light recording.
...
Write a light with the default parameters in disabled state if
capturing a missing light.
2006-06-07 15:20:00 +02:00
H. Verbeet
26978a4d2d
wined3d: Return the result of QueryInterface in GetContainer.
2006-06-07 11:48:00 +02:00
H. Verbeet
7b8bf46f3f
wined3d: Remove a redundant break.
2006-06-07 11:47:54 +02:00
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
Stefan Dösinger
d89080c671
wined3d: Update the device palette if the primary palette is changed.
2006-05-10 11:23:08 +02:00
Stefan Dösinger
275a0c2f2d
wined3d: Implement WineD3DSurface palette methods.
2006-05-10 11:22:20 +02:00
Stefan Dösinger
f8e8646fcc
wined3d: Implement GetFlipStatus and GetBltStatus.
2006-05-10 11:22:01 +02:00
Stefan Dösinger
cd05f9c10c
wined3d: Implement IWineD3DSurface::Flip.
2006-05-10 11:21:38 +02:00
Stefan Dösinger
9b29fb6860
wined3d: Implement IWineD3DSurface::SetColorKey.
2006-05-09 20:46:59 +02:00
Stefan Dösinger
08dc9e003d
wined3d: Implement IWineD3DSurface::IsLost and Restore.
2006-05-09 20:45:39 +02:00
Stefan Dösinger
10ff0d8184
wined3d: rhw vertex fixup.
...
Change the rhw=0 range to ]1e-8,1e-8[ and move the value to a constant
in wined3d_types.h
2006-05-09 20:45:27 +02:00
Ivan Gyurdiev
1d0c672393
wined3d: Share get_opcode.
2006-05-09 20:45:10 +02:00
Phil Costin
9413c89c33
wined3d: Add check for GL Shading Language 100 Extension.
2006-05-09 12:39:24 +02:00
Ivan Gyurdiev
c93239d36d
wined3d: Clean up per version shader limits code.
2006-05-09 11:58:14 +02:00
Ivan Gyurdiev
5f10560762
wined3d: Addline cleanup.
2006-05-09 11:55:45 +02:00
Stefan Dösinger
af462957c3
wined3d: Implement IWineD3DSurface::GetDC and IWineD3DSurface::ReleaseDC.
2006-05-08 20:58:27 +02:00
Marcus Meissner
80dc1f9cb3
wined3d: Fix possible buffer overflow.
...
Increase size of passed buffer to print into.
2006-05-08 15:26:55 +02:00
Jason Green
66ab457196
wined3d: Eliminate duplicate function: vshader_program_dump_param().
2006-05-08 15:19:12 +02:00
Ivan Gyurdiev
4b3079438b
wined3d: Share get_register_code().
2006-05-08 15:15:30 +02:00
Stefan Dösinger
18e95ee969
wined3d: Add IWineD3DSurface::GetPitch.
2006-05-08 14:52:18 +02:00
Stefan Dösinger
a173c8e35a
wined3d: Add IWineD3DDevice::DrawPrimitiveStrided.
2006-05-08 14:51:13 +02:00
Stefan Dösinger
1cfbc903d5
wined3d: Add some surface flags.
2006-05-08 14:50:58 +02:00
Ivan Gyurdiev
aea0b5d0f8
wined3d: Separate pshader/vshader tables.
2006-05-08 13:36:31 +02:00
Ivan Gyurdiev
dbf5450982
wined3d: Remove dead shader code.
2006-05-07 10:00:24 +02:00
Ivan Gyurdiev
07f4f70487
wined3d: QueryInterface corrections.
2006-05-05 20:23:41 +02:00
Roderick Colenbrander
c4eff1eb44
wined3d: Vertex Shader regtype cleanups.
2006-05-05 18:01:09 +02:00
Ivan Gyurdiev
1e86752812
wined3d: Fix mipmap level count.
2006-04-21 11:35:49 +02:00
Ivan Gyurdiev
744f3ae1c4
wined3d: Improve/implement D3DSIO_TEX.
...
- unify per-version cases into a single sequence
- make use of get_register_name() for the destination register
- ignore destination write mask - it's only allowed on 2.0+ shaders,
and only the default mask is allowed there (xyzw)
- enable swizzle on texld 1.4 (it works together with dw/dz modifiers)
- implement for shaders 2.0-3.0
2006-04-21 11:35:34 +02:00
Ivan Gyurdiev
ecba4d5cbd
wined3d: Texture format corrections.
...
- add missing GL type and make GL cfg entries for A16B16G16R16
- correct L16 type to UNSIGNED_SHORT (..16 = short, not byte)
- change internal format for X8R8G8B8 from GL_RGB to GL_RGB8 which
seems more correct
2006-04-21 11:35:06 +02:00
Ivan Gyurdiev
74117baa6c
wined3d: Correct vtrace usage.
2006-04-21 11:34:31 +02:00
Stefan Dösinger
a6f71af021
wined3d: Implement IWineD3DPalette.
2006-04-21 11:28:11 +02:00
Ivan Gyurdiev
63ef9788dd
wined3d: Trace corrections/improvements.
2006-04-20 15:38:00 +02:00
Ivan Gyurdiev
162d9cb6f4
wined3d: Support for shift modifiers.
2006-04-19 19:27:22 +02:00
Ivan Gyurdiev
70fc78b64e
wined3d: Support more than 4/6 tex/temp registers.
2006-04-19 19:26:50 +02:00
Stefan Dösinger
04da3ce2d1
wined3d: Implement GetHWND and SetHWND.
2006-04-19 12:55:03 +02:00
Stefan Dösinger
7fee88df9f
wined3d: Implement EnumTextureFormats.
2006-04-19 12:54:32 +02:00
Stefan Dösinger
ac964c3b61
wined3d: Implement EnumZBufferFormats.
2006-04-19 12:54:08 +02:00
Stefan Dösinger
a6206836e6
wined3d: Implement IWineD3DDevice::EnumDisplayModes.
2006-04-19 12:53:30 +02:00
Stefan Dösinger
d04f0507cf
wined3d: Implement Init3D and Uninit3D.
2006-04-19 12:43:22 +02:00
Ivan Gyurdiev
3dddaae795
wined3d: Use ARB[f|v]p1.0 for ps2/ps3/vs3.
2006-04-18 11:22:48 +02:00
Ivan Gyurdiev
e3c8e65084
wined3d: Use correct register number mask.
...
The regmask currently being used is wrong - 0x1FFF includes the high
two bits of the register type.
2006-04-18 11:20:45 +02:00
Ivan Gyurdiev
e0a1442f6c
wined3d: Dcl opcode takes 2 parameters.
2006-04-18 11:19:48 +02:00
Ivan Gyurdiev
7e5f734ee3
wined3d: Fix _dw modifier.
...
The _dw modifier needs to specify a component swizzle, just like the
_dz currently does.
2006-04-18 11:19:13 +02:00
Ivan Gyurdiev
d3d56e765d
wined3d: Fix flow control instructions number of parameters.
...
- else, endif, break take 0 parameters [not 2]
- if, rep take 1 parameter [not 2]
- breakp takes 1 parameter [not 2]
- move all flow control instructions in one place
- sync software shaders signatures with this
2006-04-18 11:18:48 +02:00
Ivan Gyurdiev
0d6eaf363d
wined3d: Skip unhandled opcodes in vshaders.
2006-04-18 11:17:34 +02:00
Ivan Gyurdiev
d486b93e30
wined3d: Texkill is supported for ps2.0-3.0.
2006-04-18 11:17:12 +02:00
Stefan Dösinger
42b9221f51
wined3d: Add the remaining DirectDraw methods to WineD3DSurface.
2006-04-18 11:14:13 +02:00
Stefan Dösinger
80bdb24cad
wined3d: Add the remaining IWineD3DDevice methods.
2006-04-18 11:13:47 +02:00
Stefan Dösinger
cff4e1ea4b
wined3d: Add IWineD3DPalette.
2006-04-18 11:11:49 +02:00
Stefan Dösinger
03b256b16d
wined3d: Add a parameter for surface type selection.
2006-04-18 11:09:17 +02:00
Stefan Dösinger
076fa811af
wined3d: Add a method to change the front and back buffers.
2006-04-17 11:21:22 +02:00
Stefan Dösinger
ffc8e46e76
wined3d: Add IWineD3DSurface::Blt.
2006-04-17 11:19:30 +02:00
Sagar Mittal
4f986c842f
wined3d: Fix null pointer check in IWineD3DImpl_GetPixelShader.
2006-04-14 19:36:48 +02:00
Stefan Dösinger
d9cd05db80
wined3d: Add GetHWND and SetHWND methods to IWineD3DDevice.
2006-04-14 10:52:01 +02:00
Jason Green
5f4b424553
wined3d: Add case 0 to switch statement and fix the fixme.
...
Screwed up a copy/paste from one of my recent patches. This
eliminates the erroneous FIXME for calls to D3DFmtMakeGlCfg() with 0
as the Stencil format. Also, it changes the FIXME to print the
correct variable.
2006-04-13 11:23:50 +02:00
Stefan Dösinger
cf27031329
wined3d: Add IWineD3DSurface::Flip.
2006-04-13 11:23:03 +02:00
Stefan Dösinger
d2510847b0
wined3d: Split device creation and opengl initialization.
2006-04-13 11:22:45 +02:00
Karsten Elfenbein
59189ba75b
wined3d: Combined unhandled renderstate cases into one.
2006-04-12 20:57:26 +02:00
Karsten Elfenbein
c90c04607e
wined3d: IWineD3DDeviceImpl_Reset cleanup.
...
Joined the functions as it looks like a typo in the function name
(IWineD3DDeviceImpl_Rest isn't used anywhere but contains comments).
2006-04-12 20:57:16 +02:00
Stefan Dösinger
e0c8773199
wined3d: Add a resource dumper.
2006-04-12 12:54:28 +02:00
Ivan Gyurdiev
c1a6e910ce
wined3d: Enable texld instruction (shaders 1.4).
2006-04-12 11:42:21 +02:00
Ivan Gyurdiev
8ab0237e21
wined3d: Reorganize shaders code a bit.
2006-04-12 11:42:04 +02:00
Jason Green
be10a6a099
wined3d: Spelling fixes and downgrade a FIXME to a TRACE.
2006-04-12 11:17:59 +02:00
Stefan Dösinger
108688f96a
wined3d: Don't do a logical AND on the swap effect.
2006-04-12 11:17:49 +02:00
Stefan Dösinger
edfe5d68ee
wined3d: Store the private data in IWineD3DResource::SetPrivateData.
2006-04-12 11:17:39 +02:00
Ivan Gyurdiev
12be14b6cc
wined3d: Remove bogus address register warning for pixel shaders.
...
Pixel shaders don't have an address register, this warning is bogus.
D3DSPR_ADDR is interpreted as D3DSPR_TEXTURE for pixel shaders.
2006-04-11 14:22:18 +02:00
Jason Green
3f591ecb13
wined3d: Add some more debugging info.
...
Adds more debugging FIXME's if a specific WINED3DFMT_??? isn't supported.
2006-04-10 16:32:30 +02:00
Ivan Gyurdiev
634698cb19
wined3d: Print all errors in checkGLcall.
2006-04-10 12:24:23 +02:00
Ivan Gyurdiev
88a7c9e948
wined3d: Downgrade some FIXMEs.
2006-04-10 12:23:45 +02:00
Ivan Gyurdiev
5c12c043df
wined3d: Map D3DFMT_L16, D3DFMT_A16B16G16R16 to OpenGL formats.
...
Map:
D3DFMT_L16 -> GL_LUMINANCE16_EXT
D3DFMT_A16B16G16R16 -> GL_RGBA16_EXT
as Raphael suggested.
Also increase the returned Bpp for unknown and unhandled formats from
4 to 8 bytes - this part fixes segfault in the F.E.A.R demo. It now
shows some flashy graphics before it dies again :)
2006-04-10 12:23:38 +02:00
Stefan Dösinger
cf4b91f074
wined3d: Add WINED3DBOX to wined3d_types.h.
2006-04-07 14:55:50 +02:00
Stefan Dösinger
9d67b4287e
wined3d: Rename return values from D3D* to WINED3D*.
2006-04-07 14:54:04 +02:00
Stefan Dösinger
e71468c786
wined3d: Add WINED3DLOCKED_BOX to wined3d_types.h.
2006-04-07 11:46:36 +02:00
Stefan Dösinger
bbe490abcc
wined3d: Add WINED3DLOCKED_RECT to wined3d_types.h.
2006-04-06 22:23:31 +02:00
Stefan Dösinger
63fd9a7a98
wined3d: Add WINED3DTEXTUREFILTERTYPE to wined3d_types.h.
2006-04-06 22:22:35 +02:00
Jan Zerebecki
d4fa4f22cb
wined3d: CreateDevice should use the root window.
2006-04-04 20:34:47 +02:00
Jan Zerebecki
166b6d861d
wined3d: Output unhandled renderstates with debug_d3drenderstate.
2006-04-04 20:31:38 +02:00
Jan Zerebecki
10fc948093
wined3d: Add D3DFMT_L16.
2006-04-04 20:30:53 +02:00
Stefan Dösinger
be720179b6
wined3d: Add WINED3DCUBEMAP_FACES to wined3d_types.h.
2006-04-04 20:01:10 +02:00
Stefan Dösinger
c289b3cc51
wined3d: Define WINED3DGAMMARAMP based on D3DGAMMARAMP / DDGAMMARAMP.
2006-04-04 20:00:41 +02:00
Jason Green
bb704ea951
wined3d: Add a couple more debugging output formats.
2006-04-04 12:08:40 +02:00
Stefan Dösinger
08c38a87e1
wined3d: Add WINED3DRASTERSTATUS to wined3d_types.h.
2006-04-04 11:51:37 +02:00
Stefan Dösinger
f6ed704f96
wined3d: Make use of WINED3DDEVICE_CREATION_PARAMETERS.
2006-04-03 21:35:44 +02:00
Stefan Dösinger
0ad31f819d
wined3d: Add WINED3DBACKBUFFER_TYPE to wined3d_types.h.
2006-04-03 12:17:35 +02:00
Stefan Dösinger
fce54bcc49
wined3d: Add WINED3DDISPLAYMODE to wined3d_types.h.
2006-04-03 12:17:22 +02:00
Stefan Dösinger
a7063774b9
wined3d: Do not set the mipmap level count every time a texture is used.
2006-04-03 11:45:50 +02:00
H. Verbeet
59af5c4a62
wined3d: Move fields common to vertex shaders and pixel shaders to IWineD3DBaseShader.
2006-03-30 21:55:15 +02:00
Stefan Dösinger
6a8578f847
wined3d: Add WINED3DDEVTYPE to wined3d_types.h.
2006-03-30 12:45:57 +02:00
H. Verbeet
1e1a708e8a
wined3d: Create an IWineD3DBaseShader class.
2006-03-29 13:40:45 +02:00
H. Verbeet
d4132cf7d7
wined3d: Move the vshader_ins and pshader_ins arrays into their respective objects.
2006-03-29 13:40:16 +02:00
H. Verbeet
3ee642bb09
wined3d: Move the SHADER_OPCODE definition to wined3d_private.h.
2006-03-29 13:39:33 +02:00
H. Verbeet
0ac9c473d6
wined3d: Pass the correct number of parameters for texld with ps version >= 2.
2006-03-29 13:38:18 +02:00
Stefan Dösinger
1d47556195
wined3d: Use WINED3DSWAPEFFECT in the wined3d headers and code.
2006-03-28 17:51:45 +02:00
Stefan Dösinger
d75fd75d48
wined3d: Add WINED3DPOOL to wined3d_types.h.
2006-03-28 17:34:42 +02:00
Stefan Dösinger
b4b295c2a5
wined3d: Add WINED3DMULTISAMPLE_TYPE to wined3d_types.h.
2006-03-27 11:30:49 +02:00
Stefan Dösinger
0f7eb52789
wined3d: Add WINED3DTRIPATCH_INFO to wined3d_types.h.
2006-03-27 11:30:49 +02:00
H. Verbeet
518de008db
wined3d: Move the D3DSIO_DCL dumping code into its own function.
2006-03-24 13:00:38 +01:00
Stefan Dösinger
6af24c816d
wined3d: Rectpatch code fix.
...
Update the wined3d code to use WINED3DRECTPATCH_INFO, which was added
with an older patch.
2006-03-24 12:13:50 +01:00
H. Verbeet
1aca53860a
wined3d: Set vertex attribute pointers defined in vertex declarations properly.
2006-03-22 21:41:05 +01:00
H. Verbeet
e7b33b0f37
wined3d: Fix slightly misleading ParseVertexDeclarationUsage naming.
2006-03-22 21:40:37 +01:00
H. Verbeet
f716eea3df
wined3d: Initialise WINED3DVERTEXELEMENT's Reg field in
...
IWineD3DVertexDeclarationImpl_ParseDeclaration9.
2006-03-22 21:40:21 +01:00
H. Verbeet
46b13aaa58
wined3d: glTypeLookup cleanup.
...
Use a struct instead of an UINT array as entries in the glTypeLookup
table.
2006-03-22 21:39:04 +01:00
H. Verbeet
bce3da3af7
wined3d: Store the pixelshader version in the pixelshader object.
2006-03-22 21:37:19 +01:00
Roderick Colenbrander
a187ab05c4
wined3d: Don't use OpenGL 2.0.
2006-03-20 22:09:05 +01:00
Roderick Colenbrander
bcbf5f397e
d3d8/wined3d: Vertex shader fixes.
2006-03-17 13:11:06 +01:00
Stefan Dösinger
6cc87406cf
wined3d: Add WINED3DINDEXBUFFER_DESC to wined3dtypes.h.
2006-03-15 11:30:39 +01:00
Roderick Colenbrander
d4836e1ce1
wined3d: Vertexdeclaration fix.
...
In the old d3d8 code SetVertexShader stored the so called vertex
declaration in the stateblock. In case of WineD3D this isn't done
which breaks the drawPrimitive code. This patch stores the vertex
declaration again in the stateblock which fixes Age Of Mythology.
2006-03-13 14:19:10 +01:00
Stefan Dösinger
9f46792ba2
wined3d: Add WINED3DVERTEXBUFFER_DESC to wined3d_types.h.
2006-03-13 13:32:01 +01:00
Vitaliy Margolen
d2ef7869de
wined3d: Don't override variable that still has something we need.
...
Use local temp variable instead.
2006-03-13 13:31:45 +01:00
Vitaliy Margolen
76e5e88fe7
wined3d: Add D3DSIO_TEXM3x3PAD to opcode list. We already handle it where we should.
2006-03-13 13:31:27 +01:00
Stefan Dösinger
913df5b143
wined3d: Consistently use WINED3DRESOURCETYPE.
2006-03-10 21:43:00 +01:00
H. Verbeet
76c469e5a4
wined3d: Use OpenGL fragment programs when available.
2006-03-09 13:10:42 +01:00
H. Verbeet
86b9041c0c
wined3d: Remove an incorrect FIXME.
2006-03-09 13:10:30 +01:00
H. Verbeet
008c6a00b9
wined3d: Enable color fixups for vertex shaders.
2006-03-09 13:08:55 +01:00
H. Verbeet
21d62ed1f1
wined3d: Minor vshader_program_add_param cleanup.
...
- In vshader_program_add_param, pass a pointer to the shader object
instead of individual parameters.
- In vshader_program_add_param, rename input to is_input to make it
clearer what the parameter does.
- Fix a typo & cleanup a comment.
2006-03-09 13:08:35 +01:00
Stefan Dösinger
6104c67613
wined3d: Use WINED3DPRESENT_PARAMETERS in IWineD3DSwapChain::GetPresentParameters.
2006-03-09 12:51:26 +01:00
Stefan Dösinger
851bdfb5e0
wined3d: Add D3DLOCK_* types to wined3d_types.h.
2006-03-08 11:33:35 +01:00
H. Verbeet
78a43b3dbc
wined3d: Fix a few FIXME's.
2006-03-07 10:56:52 +01:00
H. Verbeet
ae21e30118
wined3d: Implement GetCreationParameters (from a patch by Al Tobey).
2006-03-07 10:53:43 +01:00
Stefan Dösinger
270afeb5e8
wined3d: Define D3D usage flags in wined3d_types.h.
2006-03-07 10:53:02 +01:00
Stefan Dösinger
2f0c781988
wined3d: Add device caps to wined3d_types.h.
2006-03-07 10:51:34 +01:00
H. Verbeet
07004966a8
wined3d: Fix the relation between volumes and their container.
2006-03-06 20:08:36 +01:00
H. Verbeet
f7356a34c3
wined3d: Fix the relation between surfaces and their container.
2006-03-06 20:08:22 +01:00
H. Verbeet
fd2739b023
wined3d: Don't call glCompressedTexImage2DARB without allocatedMemory.
...
Don't call glCompressedTexImage2DARB if we haven't got allocatedMemory (yet).
Fix a small typo.
2006-03-06 20:01:05 +01:00
Vitaliy Margolen
46ecb15c5c
wined3d: Fix retrieval of driver adapter versions.
2006-03-06 11:43:00 +01:00
Stefan Dösinger
033769f94d
wined3d: Add d3d7 and d3d8/9 cap flags to wined3d_types.h.
2006-03-06 11:36:28 +01:00
Jason Green
6d30800db6
wined3d: Add a few more WINED3DFMT formats to be recognized.
2006-03-06 11:36:07 +01:00
Vitaly Budovski
3832eb7de4
wined3d: Added OpenGL 2.0 function definitions.
2006-03-06 11:12:14 +01:00
Vitaly Budovski
e5bad779d6
wined3d: Implemented WINED3DRS_DEPTHBIAS.
2006-03-04 16:20:22 +01:00
Vitaly Budovski
196eaa674c
wined3d: Added two sided stencil support to WINED3DRS_STENCILFUNC.
2006-03-04 16:18:39 +01:00
Vitaly Budovski
f2f59cae61
wined3d: Added two sided stencil support to WINED3DRS_STENCILFAIL,
...
WINED3DRS_STENCILZFAIL and WINED3DRS_STENCILPASS.
2006-03-04 16:18:18 +01:00
Vitaly Budovski
6bf561b7ba
wined3d: Implemented fallback for separate stencil function in WINED3DRS_CCW_STENCILFUNC.
2006-03-04 16:17:32 +01:00
Vitaly Budovski
7b55a0cff1
wined3d: Implemented fallback for separate stencil operation in WINED3DRS_CCW_STENCIL*.
2006-03-04 16:15:47 +01:00
Detlef Riekenberg
858be437c5
wined3d: Fix cut&paste typo.
2006-03-04 16:13:39 +01:00
Roderick Colenbrander
f8ed06ea3d
wined3d: Opengl 2.x compile fix.
2006-03-02 15:50:16 +01:00
Aric Cyr
252c4adb96
wined3d: Reverse GL_BGR to GL_RGB for the D3D RGB formats.
...
This fixes texture colours in many D3D games (verified with Age Of Mythology).
2006-03-01 20:05:11 +01:00
Vitaly Budovski
63585380a9
wined3d: Implemented WINED3DRS_CCW_STENCIL* render states.
2006-02-28 12:22:16 +01:00
Vitaly Budovski
5c8c0059ab
wined3d: Implemented WINED3DRS_SCISSORTESTENABLE.
2006-02-28 12:21:00 +01:00
Vitaly Budovski
4b10288b5b
wined3d: Implemented WINED3DRS_SLOPESCALEDEPTHBIAS.
2006-02-28 12:20:01 +01:00
Vitaly Budovski
c9a1134ce3
wined3d: Implemented WINED3DRS_ANTIALIASEDLINEENABLE.
2006-02-28 12:19:11 +01:00
Vitaly Budovski
64ccecfbab
wined3d: Added D3D9 render states.
2006-02-28 12:14:25 +01:00
Vitaly Budovski
c8480e25e7
wined3d: Fixed some typos and prevented divide by 0.
2006-02-28 12:13:59 +01:00
H. Verbeet
7d97f29c24
wined3d: Don't use GetDevice in IWineD3DSurfaceImpl_GetContainer, as
...
it adds a reference to the device that shouldn't be there.
2006-02-27 12:20:09 +01:00
Roderick Colenbrander
d13469c1d8
d3d8: Moved the remaining code over to WineD3D (based on patches by
...
Oliver Stieber).
2006-02-27 12:20:03 +01:00
Roderick Colenbrander
b24e69dc38
d3d8: Move the capability detection code over to WineD3D.
...
Let the few existing parts which need the capabiliteis use the WineD3D
capability structure (gl_info). This info structure contains next to
'flags' inidicating certain features also all GL/GLX functions
pointers. Because D3D8 moves over to the wined3d gl_info structure all
the gl prototypes in d3dcore_gl.h were unneeded and removed.
2006-02-21 11:28:58 +01:00
Roderick Colenbrander
e64a2fdf9e
wined3d: Set the texture size for d3d8.
2006-02-16 12:10:21 +01:00
Stefan Dösinger
46e8d67787
wined3d: Update the glOrtho between 2 rhw draws if the viewport was changed.
2006-02-13 13:25:21 +01:00
H. Verbeet
7a4b59b0c2
wined3d: Don't keep a reference to the container, as it creates a
...
circular reference.
2006-02-13 13:23:58 +01:00
Francois Gouget
0ff18f58fa
wined3d: Protect float.h inclusion.
2006-02-13 13:23:42 +01:00
Jan Zerebecki
da2d1f883b
wined3d: Make the returned driver version similar to windows.
2006-02-11 12:16:29 +01:00
Jan Zerebecki
41e5478cdd
wined3d: Extend debug_d3drenderstate with missing states.
2006-02-11 12:15:31 +01:00
Louis Lenders
25c885e269
wined3d: Prevent crash in setup_light.
2006-02-11 12:14:19 +01:00
H. Verbeet
c2fe85e658
wined3d: Release the vertex declaration during stateblock cleanup.
2006-02-10 14:52:27 +01:00
H. Verbeet
bac34c35aa
wined3d: Release the container during surface / volume cleanup.
2006-02-10 14:52:20 +01:00
Christoph Frick
c99cab705e
wined3d: Support for WINED3DFMT_A8B8G8R8.
2006-02-09 12:07:40 +01:00
Christoph Frick
61f8ef7936
wined3d: Better warn/fixme for query handling.
2006-02-09 12:07:30 +01:00
Roderick Colenbrander
c7b58749a1
wined3d: Added CopyRects method (based on a patch by Oliver Stieber).
2006-02-07 16:51:39 +01:00
H. Verbeet
ff08986d01
wined3d: Always return the number of elements in the vertex
...
declaration in IWineD3DVertexDeclarationImpl_GetDeclaration9.
2006-02-07 12:26:34 +01:00
H. Verbeet
1c4a94b0ba
wined3d: Don't set the container to the device for standalone surfaces.
2006-02-07 12:26:26 +01:00
H. Verbeet
b994d057ac
wined3d/d3d9: Cleanup GetContainer for volumes.
2006-02-07 12:26:10 +01:00
H. Verbeet
2200f3e2ca
wined3d/d3d9: Cleanup GetContainer for surfaces.
2006-02-07 12:25:59 +01:00
Roderick Colenbrander
694efd7c6f
wined3d: Texture fixes.
...
Set video memory capabilities, add some checks to SetTexture and
update some comments.
2006-02-06 20:57:42 +01:00
H. Verbeet
bd8db45e44
wined3d: Update the QueryInterface functions of IWineD3DBase subclasses.
2006-02-06 11:32:41 +01:00
H. Verbeet
c6515ab307
wined3d: Update refcounts when storing references in IWineD3DStateBlockImpl_Capture.
...
Move TRACEs to the top of their code blocks.
2006-02-06 11:32:13 +01:00
H. Verbeet
b9193cc93f
wined3d: Release the correct vertexdeclaration in
...
IWineD3DDeviceImpl_SetVertexDeclaration.
2006-02-06 11:31:57 +01:00
H. Verbeet
fe7f2bad15
wined3d: Also update reference counts when we're recording a stateblock.
2006-02-06 11:31:17 +01:00
H. Verbeet
e43cfb1a68
wined3d: Fix SetContainer.
...
Add/Release references to the container.
Change the type of the container from IUnknown to IWineD3DBase.
2006-02-06 11:30:48 +01:00
H. Verbeet
bcfa7dcf7d
wined3d: Downgrade a FIXME to a TRACE.
2006-02-06 11:30:27 +01:00
H. Verbeet
c72fce011d
wined3d: Use GL_EXTCALL to call OpenGL extension glPointParameterfvARB.
2006-02-05 12:19:22 +01:00
Vitaly Budovski
3c17322e75
wined3d: Fixed point sprite scaling when size < 1.0f.
2006-02-04 17:07:36 +01:00
Roderick Colenbrander
da512ca655
wined3d: Add a break which got lost in the POINTSCALEENABLE fix.
2006-02-03 18:51:30 +01:00
Vitaly Budovski
8f3c98fdfd
wined3d: Fixed WINED3DRS_POINTSPRITEENABLE.
2006-02-03 12:37:46 +01:00
Vitaly Budovski
dbff6d59e8
wined3d: Corrected implementation of WINED3DRS_POINTSCALEENABLE.
2006-02-03 12:34:44 +01:00
Vitaly Budovski
4279bcc5a8
wined3d: Implemented WINED3DRS_EDGEANTIALIAS.
2006-02-03 12:33:26 +01:00
Vitaly Budovski
6de3620a9c
wined3d: Implemented WINED3DRS_MULTISAMPLEANTIALIAS.
2006-02-03 12:31:02 +01:00
Vitaly Budovski
d599037c4e
wined3d: Added support for ARB_POINT_PARAMETERS.
2006-02-02 13:50:31 +01:00
H. Verbeet
12805f08aa
wined3d: Fix a few TRACEs in pixelshader.c.
2006-01-20 16:13:57 +01:00
H. Verbeet
f5c2e85b46
wined3d: Return the correct pixelshader in
...
IWineD3DDeviceImpl_GetPixelShader.
2006-01-20 16:13:12 +01:00
H. Verbeet
4bd8b60bd3
wined3d: A shader isn't guaranteed to have a vertex declaration, so
...
add a NULL check for that.
2006-01-20 16:13:03 +01:00
H. Verbeet
b884072687
wined3d: Better version string parsing for VENDOR_NVIDIA in
...
IWineD3DImpl_FillGLCaps.
2006-01-19 12:39:37 +01:00
H. Verbeet
093a034f7f
wined3d: In IWineD3DImpl_FillGLCaps use glGetString instead of
...
glXGetClientString to retrieve the OpenGL vendor.
2006-01-19 11:55:34 +01:00
Francois Gouget
6526c3772d
Add trailing '\n's to ok() calls.
...
Remove spaces before '\n' in traces.
2006-01-03 12:10:37 +01:00
Raphael Junqueira
ee5d72b136
wined3d: Added support for WINED3DFMT_X4R4G4B4.
2005-12-31 13:13:34 +01:00
H. Verbeet
4e7b2557b5
wined3d: Cleanup shader constants code a little bit.
...
Improved bounds checking.
2005-12-20 11:46:52 +01:00
Oliver Stieber
a57790f46a
wined3d: Vertex declaration cleanup.
...
Clean up constants and the wine declaration when the vertex
declaration is destroyed.
2005-12-16 12:49:38 +01:00
Oliver Stieber
8ff9a7eb55
wined3d: Allow NULL multi sample quality.
...
Allow MultiSampleQuality to be passed as NULL, this is a
requirement for DirectX 8 and lower.
2005-12-16 12:49:22 +01:00
Ragnvald "Despair" Maartmann-Moe IV
3e495fe465
wined3d: Fix matrix copy/paste bug.
2005-12-16 12:39:07 +01:00
Oliver Stieber
74e28a354f
wined3d: Vertex declaration recording state.
...
Stop SetVertexDeclaration from reference counting if a stateblock is
being recorded.
2005-12-16 12:38:24 +01:00
Oliver Stieber
e76969b0d6
wined3d: Internal reference counting.
...
Change most references to resources parent into references to the
resource, so that external reference counts match DirectX but object
aren't released if they are still referenced by the stateblock.
2005-12-15 10:25:47 +01:00
H. Verbeet
0f43cb2f38
wined3d: Return the correct parent in IWineD3DVertexDeclarationImpl_GetParent.
2005-12-14 11:29:17 +01:00
H. Verbeet
dabcbe83e7
wined3d: Return the correct vertex declaration.
...
In IWineD3DDeviceImpl_GetVertexDeclaration, return the vertex
declaration in This->stateblock instead of the one in
This->updateStateBlock.
2005-12-14 10:50:27 +01:00
H. Verbeet
6077c63feb
wined3d: Don't change the shader's refcount in SetVertexShader and
...
SetPixelShader.
2005-12-13 11:11:01 +01:00
Oliver Stieber
ea942e1e75
wined3d: Cube texture named constants.
...
Update cubetexture so that names constants instead of numeric
constants are used for the facetype and also add some additional
checks where facetype is passed as a parameter to the function.
2005-12-13 11:10:20 +01:00
Oliver Stieber
7c482cb9a1
wined3d: Vertex shader 8 support.
...
Start to add support for DirectX 8 vertex shaders, constants and
registers are now correctly assigned and loaded allowing support for
most basic d3d8 shaders.
2005-12-09 11:23:52 +01:00