Commit Graph

891 Commits

Author SHA1 Message Date
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
H. Verbeet c73679e4eb wined3d: Set pixel shader version correctly in IWineD3DPixelShaderImpl_SetFunction. 2005-12-03 18:18:58 +01:00
H. Verbeet 246b07de7c wined3d: Return the correct parent in IWineD3DPixelShaderImpl_GetParent.
Remove an unnecessary cast.
2005-12-03 18:10:56 +01:00
H. Verbeet 4880c586d8 wined3d: return D3DERR_INVALIDCALL when calling BeginStateBlock and
already recording.
2005-12-03 18:04:26 +01:00
Francois Gouget 5127dc9f49 Assorted spelling fixes. 2005-12-02 16:15:09 +01:00
Willie Sippel fbfb971646 Added more Nvidia card IDs. 2005-11-30 19:45:45 +01:00
Raphael Junqueira 0e68b671f4 Add support for Intel drivers version string.
Update default driver version (nvidia).
2005-11-30 12:02:45 +01:00
Oliver Stieber aa9ce3577a Added support for vertex and pixel shader constants that have no type
i.e. they haven't been set yet or are clear.
2005-11-29 17:05:54 +01:00
Oliver Stieber 5903c5df1b Stop reporting not having swapchain 0 as an error and add an internal
variable instead of modifying a parameter.
2005-11-28 10:59:41 +01:00
Oliver Stieber c622cd7c24 Correct some errors in the way vertex declarations for directx 8 are
parsed and add offset support.
2005-11-28 10:59:22 +01:00
Oliver Stieber d3c33dc018 Correct the matrix sizes in software shaders and remove an erroneous
parameter from lrp.
2005-11-28 10:39:48 +01:00
Alexandre Julliard 0ec7e1a591 Renamed all .cvsignore files to .gitignore. 2005-11-26 13:10:33 +01:00
Francois Gouget 6d442aeb34 Assorted spelling fixes. 2005-11-23 20:14:43 +01:00
Oliver Stieber 30ad95b6cd Corrects an error in the _m3xm3 shader function in pixel and vertex
shaders.
2005-11-22 15:01:55 +00:00
Oliver Stieber 932815d6f0 Implement a pixel shader parser and cross compiler. All version of
shaders up to 3 should be parsed correctly, but only shaders 1-1.4
will be cross compiled.
2005-11-21 16:27:55 +00:00
Oliver Stieber bcb4201130 Disable support for creation FMT_Unknown textures. This gets most of
the d3d8 demos from www.codesampler.com working.
2005-11-17 11:40:43 +00:00
Oliver Stieber da29023d7a Clear the z and stencil buffers at the end of the scene, this fixes a
problem with the solid node bsp demo from www.codesampler.com as well
as a lot of blank screens in some other demos.
2005-11-17 11:05:12 +00:00
Raphael Junqueira 705aec5a6f - defined D3DCOLOR_B macros to access byte values of D3DCOLOR
- use D3DCOLOR macros instead of using shift + masks
- fix a bug where diffuse.lpData checked instead of specular.lpData
- implement color fixup on ARB VShader compilation code:
 -> on input parameters using swizzle
 -> add is_color parameter on vshader_program_add_param
2005-11-15 12:03:13 +00:00
Oliver Stieber a8d9a2a4ac Fix an intermittent lockup with ATI's driver, I expect the problem is
trying to clear the display before it's visible. Also correct the
clear alpha value.
2005-11-14 12:28:59 +00:00
Francois Gouget 0edbaf7e80 Remove spaces before '\n' in traces. 2005-11-10 12:14:56 +00:00
Francois Gouget f4c0524ec6 Assorted spelling and case fixes. 2005-11-10 11:39:07 +00:00
Raphael Junqueira c4569d9298 Define GL_EXT_framebuffer_object and GL_EXT_pixelbuffer_object openGL
specs.
Support Mesa GL_VERSION on parse.
2005-11-10 11:04:59 +00:00
Raphael Junqueira 2e9bff702c Fix parsing of version number. 2005-11-08 12:47:04 +00:00
Oliver Stieber f4e290ff46 Fixed an error in Swapchain_GetFrontBufferData. 2005-11-08 10:55:49 +00:00
Oliver Stieber c62e978d54 Verify that the texture coordinate used in DrawStridedSlow is in range
before trying to referencing the associated data.
2005-11-07 11:13:26 +00:00
Oliver Stieber 39d6e30db0 Prevent SetFVF from clearing down the vertex declaration of the FVF is
zero. This is required for Prince of Persia, The sands of time.
2005-11-07 11:12:38 +00:00
Oliver Stieber 0e3a3555e9 Tidy up UpdateTexture and add support for updating cube textures. 2005-11-04 12:39:17 +00:00
Oliver Stieber f52f6ce93d Add support for updating to D3DFMT_UNKNOWN surfaces and tidy up update
surface a little.
2005-11-04 11:13:45 +00:00
Oliver Stieber d6fcc69ddb Implement D3DFMT_UNKNOWN surfaces, this seems to be used a lot in d3d8
but I haven't found any d3d9 application that uses D3DFMT_UNKNOWN
surfaces yet.
2005-11-02 20:01:54 +00:00
Oliver Stieber 1f2a9e2c31 Move the softwareVertexProcessing flag from the stateblock to the
device because its state shouldn't be recorded in a stateblock.
2005-10-29 10:30:36 +00:00
Oliver Stieber 473cac840b Correct the number of parameters expected for the LRP function. 2005-10-27 10:23:53 +00:00
Oliver Stieber 483320c484 Changed the way that 24bit and 32bit Adapter and Buffer formats are
reported allowing EVE online to get past the startup screen and
allowing the Fur demo (amongst others) to run in a window, as under
windows, instead of in fullscreen mode.
2005-10-12 21:07:27 +00:00
Oliver Stieber 44b4777972 Add checks for ARB_vertex_program before allowing vertex shaders to
use ARB_vertex_program.
2005-10-11 20:27:54 +00:00
Oliver Stieber 0fbf69fcf8 Report unrecognized opcodes as FIXMEs instead of TRACEs so that they
are easier to spot and fix.
2005-10-10 19:52:49 +00:00
Oliver Stieber 80c60f5bad Provide looser device matching for backbuffer and depth buffer
formats. It should allow some games and applications to run without X
being in the correct backbuffer format (e.g. 16 bit games will run
with a 24bit X backbuffer).
2005-10-04 15:50:57 +00:00
Marcus Meissner 0a7de6a758 Use correct minLookup[] array entry. 2005-10-03 10:15:08 +00:00
Vincent Béron 5eae622f44 Don't define some functions/variables if they won't be used after in
wined3d.
2005-09-29 10:47:59 +00:00
Alexandre Julliard 7e22be4d84 We are no longer generating .dbg.c files. 2005-09-29 10:35:58 +00:00
Oliver Stieber effc262f9f Added support for backbuffer with the formats A1R5G5B5 and X1R5G5B5. 2005-09-29 10:31:43 +00:00
Oliver Stieber b3563daca2 Implement state tracking for pixel shader constants. 2005-09-28 10:13:00 +00:00
Oliver Stieber c99a3fafef Change the format of surface_SaveSnapshot to TGA from PPM and add
support for compressed textures and an alpha channel.
2005-09-27 10:49:59 +00:00
Oliver Stieber 2b8a7dca38 Correct a problem with locking nonpower 2 back and front buffers. 2005-09-27 09:32:29 +00:00
Francois Gouget a8c7284f92 Assorted spelling fixes. 2005-09-26 10:58:41 +00:00
Oliver Stieber 9e6957bbdc Optionally repack nonpower 2 textures to the expected span length when
a textures is locked. This is necessary for buggy games like Warhammer
40k that don't work with the odd span sizes produce by default
nonpower 2 support.
2005-09-23 11:08:03 +00:00
Oliver Stieber 357a484a7e Enable dxt2 and dxt4 compressed textures to be created via
Device_CreateSurface.
2005-09-23 10:48:01 +00:00
Oliver Stieber 0fac2d96fc Clean up all the objects bound to the device when the device is
destroyed as a result of its ref count reaching zero.
2005-09-23 10:07:46 +00:00
Alexandre Julliard 0ec0f048e6 Removed unused debug channels. 2005-09-22 10:44:40 +00:00
Oliver Stieber 329d017db3 Start to implement TestCooperativeLevel. 2005-09-21 10:55:03 +00:00
Oliver Stieber 0c2fcf2efe Added support for state management of vertex shader constants via
stateblocks.
2005-09-21 10:19:29 +00:00
Oliver Stieber 5ea96a851f Implemented occlusion queries using either GL_ARB_occlusion_query or
GL_NV_occlusion_query.
2005-09-21 09:43:13 +00:00
Oliver Stieber b7603859f3 Return the adaptor mode as X8R8G8B8 when BPP is 24 or 32 bits. 2005-09-19 15:25:07 +00:00
Oliver Stieber 4752553d57 Prevent CheckDepthStencilMatch from causing problems if there is a
current active OpenGL context.
2005-09-19 14:31:21 +00:00
Oliver Stieber 7df17cecce Stop vertex shader constants from being set at the same time as the
vertex shader when a stateblock is applied.
2005-09-19 14:30:34 +00:00
Alexandre Julliard c6b005ac69 Fixed some more traces to use the right printf format and avoid
typecasts.
2005-09-12 14:12:46 +00:00
Karsten Elfenbein 13fc2f88d6 Added A2R10G10B10 and D3DFMT_D24FS8 modes to all other functions. 2005-09-07 09:25:26 +00:00
Oliver Stieber f7413fd63f Implemented point sprites using ARB_POINT_SPRITE extension. 2005-09-03 09:36:48 +00:00
Oliver Stieber 55124ec05e Added the tracking of stream frequency and flags. Stream flags and
frequency aren't handled at the moment.
2005-09-02 11:17:17 +00:00