Commit Graph

368 Commits

Author SHA1 Message Date
Stefan Dösinger 36aef3dc54 wined3d: Hold an internal reference on pixel and vertex shaders. 2007-08-28 11:55:53 +02:00
Stefan Dösinger 9092f557d1 wined3d: Non-primary stateblocks hold an internal reference on indexbuffers. 2007-08-27 18:28:27 +02:00
Stefan Dösinger d170aabe20 wined3d: Non-primary stateblocks also hold an internal reference to buffers. 2007-08-27 12:00:57 +02:00
Stefan Dösinger f7530729d5 wined3d: Add the copied light to the right stateblock. 2007-08-27 12:00:49 +02:00
Stefan Dösinger 55b63fe095 wined3d: Reinstall the internal reference on vertex buffers. 2007-08-20 22:32:13 +02:00
Stefan Dösinger b220905e4a wined3d: Reinstall the internal reference on the current index buffer. 2007-08-16 11:35:06 +02:00
Stefan Dösinger 76195d9a49 wined3d: Reorganize stateblock::capture a bit. 2007-08-15 09:41:49 +02:00
Stefan Dösinger f5e6313cf6 wined3d: Restructure Stateblock::apply a bit. 2007-08-15 09:41:43 +02:00
Stefan Dösinger b21c785482 wined3d: Optimize float constants in stateblocks. 2007-08-15 09:36:07 +02:00
Stefan Dösinger 59fb2928b8 wined3d: Optimize sampler states in stateblocks. 2007-08-15 09:35:49 +02:00
Stefan Dösinger 03ffb73450 wined3d: Optimize texture stage state applying. 2007-08-14 12:29:04 +02:00
Stefan Dösinger 865b82af2c wined3d: Optimize bool and int pixel shader constants. 2007-08-14 12:28:59 +02:00
Stefan Dösinger 4673b1c68e wined3d: Optimize bool and int vs constants. 2007-08-14 12:28:52 +02:00
Stefan Dösinger 274f77d497 wined3d: Do not copy the saved states structure into the primary stateblock. 2007-08-14 12:28:45 +02:00
Stefan Dösinger 92ce028a0b wined3d: Optimize transform state in stateblocks. 2007-08-14 12:28:40 +02:00
Stefan Dösinger 93155ea087 wined3d: Optimize render states in the stateblock. 2007-08-13 11:37:25 +02:00
Stefan Dösinger 28084c5f80 wined3d: Remove primary stateblock fixme. 2007-08-13 11:36:50 +02:00
Stefan Dösinger e7cbb340dc wined3d: Remove stateblock::set.*. 2007-08-13 11:36:43 +02:00
Stefan Dösinger f41ab3be9b wined3d: Remove ugly code from stateblock init. 2007-08-13 11:36:14 +02:00
H. Verbeet 5b7758f80c wined3d: Increase the sizes of texturing related arrays, in order to support vertex textures. 2007-06-26 11:57:17 +02:00
H. Verbeet 440ca84680 wined3d: Fix various incorrect uses of GL_LIMITS(texture_stages) and GL_LIMITS(sampler_stages). 2007-06-22 12:19:10 +02:00
Stefan Dösinger a460a2df43 wined3d: Store the gl information in a per adapter structure and initialize it only once. 2007-06-11 13:51:06 +02:00
Phil Costin 622f62d352 wined3d: Enable the loading and reloading of gamma corrected textures. 2007-06-07 13:02:04 +02:00
H. Verbeet 785771272a wined3d: Get rid of the BaseVertexIndex parameter to IWineD3DDeviceImpl_SetIndices, use SetBaseVertexIndex instead. 2007-06-06 12:10:47 +02:00
Stefan Dösinger cd7ed61cfa wined3d: Do not enable GL_APPLE_client_storage for the dummy textures. 2007-06-04 12:52:10 +02:00
Felix Nawothnig 18c9e5d5d0 wined3d: Use GL_TEXTURE_2D for dummy textures. 2007-03-30 11:25:23 +02:00
H. Verbeet 23cd4475f6 wined3d: Correct various texture limits checks. 2007-03-13 11:53:28 +01:00
H. Verbeet 19d223cade wined3d: Store multiple constant indices per list entry. 2007-02-28 13:35:34 +01:00
H. Verbeet 1a07d3142c wined3d: Get rid of any remaining d3d9 stuff in stateblock.c. 2007-02-15 14:21:03 +01:00
Stefan Dösinger acadf3f241 wined3d: Replace the light chain with a hashmap. 2007-02-14 20:44:58 +01:00
Stefan Dösinger d4b63bbd87 wined3d: Store the scissor rect in the stateblock. 2007-01-10 22:01:20 +01:00
Stefan Dösinger 478d22f742 wined3d: Do not keep internal references on index buffers. 2007-01-08 20:59:17 +01:00
Stefan Dösinger 3581d8e8d8 wined3d: Do not keep internal references on vertex buffers. 2007-01-08 20:59:06 +01:00
Stefan Dösinger 467fa4e702 wined3d: Do not keep internal references on pixel shaders. 2007-01-08 20:58:53 +01:00
Stefan Dösinger 7123d617a4 wined3d: Do not keep internal references on vertex shaders. 2007-01-08 20:58:45 +01:00
Stefan Dösinger 15f91b4ad3 wined3d: Do not keep internal references to the vertex declaration. 2007-01-08 20:58:36 +01:00
Stefan Dösinger 197ec1c179 wined3d: Remove IWineD3DDevice_ApplyStateChanges. 2007-01-02 12:22:04 +01:00
Stefan Dösinger 8365b2819a wined3d: Catch nop sampler changes. 2006-12-20 17:09:08 +01:00
Stefan Dösinger 762af471e8 wined3d: Move WINED3DTSS_COLOROP to the state table. 2006-12-20 17:06:00 +01:00
Stefan Dösinger 1e264e5dd4 wined3d: Temporary disable nvrc junk texture skipping. 2006-12-20 17:05:11 +01:00
Stefan Dösinger 3e05e133f9 wined3d: Remove the unused tween factor stateblock member. 2006-12-11 12:47:04 +01:00
Stefan Dösinger a628b99d63 wined3d: Remove the unused stateblock vertex blend member. 2006-12-11 12:46:55 +01:00
Ivan Gyurdiev 4934b7ae79 wined3d: Add D3DLINEPATTERN to the WINED3D namespace. 2006-10-31 12:11:09 +01:00
Ivan Gyurdiev 50130fdfdb wined3d: Add D3DPATCHEDGESTYLE to the WINED3D namespace. 2006-10-31 12:11:01 +01:00
Ivan Gyurdiev 908853f63d wined3d: Add D3DMATERIALCOLORSOURCE to the WINED3D namespace. 2006-10-30 12:06:17 +01:00
Ivan Gyurdiev 206d248e48 wined3d: Add D3DCMPFUNC to the WINED3D namespace. 2006-10-30 12:06:10 +01:00
Ivan Gyurdiev 2b6deb8637 wined3d: Add D3DSTENCILOP to the WINED3D namespace. 2006-10-30 12:06:03 +01:00
Ivan Gyurdiev f5cc612842 wined3d: Add D3DFILLMODE to the WINED3D namespace. 2006-10-30 12:05:55 +01:00
Ivan Gyurdiev 02fb9f6f41 wined3d: Add D3DCULL to the WINED3D namespace. 2006-10-30 12:05:48 +01:00
Ivan Gyurdiev 16767d21e1 wined3d: Add D3DSHADEMODE to the WINED3D namespace. 2006-10-30 12:05:36 +01:00
Ivan Gyurdiev 042fa7be8b wined3d: Add D3DBLENDOP to the WINED3D namespace. 2006-10-30 12:05:31 +01:00
Ivan Gyurdiev 4eced8ea24 wined3d: Add D3DFOGMODE to the WINED3D namespace. 2006-10-30 12:05:24 +01:00
Ivan Gyurdiev a648d4e3a3 wined3d: Set correct default for DMAPOFFSET sampler state. 2006-10-30 11:53:13 +01:00
Ivan Gyurdiev 5f79e80827 wined3d: Add D3DZBUFFERTYPE to the WINED3D namespace. 2006-10-24 20:06:45 +02:00
Ivan Gyurdiev 10cbffb335 wined3d: Add D3DBLEND to the WINED3D namespace. 2006-10-24 20:06:38 +02:00
Ivan Gyurdiev 4f611bc0e0 wined3d: Add D3DTA masks to the WINED3D namespace.
Also fix usage of D3DTSS/D3DTA in ddraw.
2006-10-24 20:06:30 +02:00
Ivan Gyurdiev 997e670e12 wined3d: Add D3DTADDRESS to the WINED3D namespace. 2006-10-24 20:06:15 +02:00
Ivan Gyurdiev 9846602412 wined3d: Add D3DTEXTURETRANSFORMTYPE to the WINED3D namespace. 2006-10-13 11:15:31 +02:00
Ivan Gyurdiev 6f0bb0f6fc wined3d: Add D3DVERTEXBLENDFLAGS to the WINED3D namespace. 2006-10-13 11:14:33 +02:00
Ivan Gyurdiev c912032aa5 wined3d: Add D3DTEXTUREOP to the WINED3D namespace. 2006-10-13 11:13:02 +02:00
Ivan Gyurdiev ac37163124 wined3d: Merge D3DMATRIX types into one type in WINED3D namespace. 2006-10-12 12:35:00 +02:00
Ivan Gyurdiev 5f2987ae32 wined3d: Merge VIEWPORT types into one type in WINED3D namespace. 2006-10-11 12:21:54 +02:00
Ivan Gyurdiev 90f5be2bef wined3d: Merge MATERIAL types into one type in WINED3D namespace. 2006-10-11 12:21:14 +02:00
Ivan Gyurdiev 837027fcb7 wined3d: D3DTEXTURESTAGESTATETYPE: Consistently use in WINED3D namespace. 2006-10-11 12:18:53 +02:00
Ivan Gyurdiev 3dcd3681f3 wined3d: Win64 printf fixes. 2006-10-02 14:38:04 +02:00
H. Verbeet 09eb0c40a6 wined3d: Improve float constant loading a bit.
- Use a list to keep track of what constants are set.
- Move TRACEs and checkGLcall calls out of the main constant loading loop.
2006-08-21 12:17:42 +02:00
H. Verbeet 49f4c68e29 wined3d: Lookup GLSL float uniform locations only once per program. 2006-08-21 12:16:27 +02:00
H. Verbeet efa5f78598 wined3d: Free the float constant map arrays for all stateblocks. 2006-08-21 12:16:06 +02:00
Jason Green ac8f2c033c wined3d: Improve traces for D3DTRANSFORMSTATETYPE.
Added debug function for WINED3DTRANSFORMSTATETYPE and changed all
references from D3DTS_* to WINED3DTS_*.
2006-07-24 19:55:27 +02:00
Jason Green 75950b5bf8 wined3d: Replace memset/memcpy routines on stateblock (fixes dynamic shader constants regression). 2006-07-24 12:57:34 +02:00
Ivan Gyurdiev 99272f0dee wined3d: Correct initial render states. 2006-07-21 10:54:12 +02:00
Jason Green 718716b77a wined3d: Make the number of floating point shader constants dynamic. 2006-07-19 09:54:30 +02:00
H. Verbeet 7f9e61f7d2 wined3d: Use register combiners for texture stage operations.
Make wined3d use register combiners for texture stage operations. In
order to do that the texture unit index needs to be separated from the
texture stage index. For cards that don't support the
NV_register_combiners extension nothing should change.
2006-06-28 16:34:36 +02:00
H. Verbeet a54e36adfe wined3d: Texture limits fixes.
GL_LIMITS(textures) is currently used for both the number of texture
stages and the maximum number of simultaneous textures. In the current
code that's the same, but in a later patch that will be separated,
since a texture stage doesn't have to reference an actual
texture. Also, shaders can access a larger number of samplers than the
number of texture units the fixed function pipeline can access.
2006-06-28 16:06:25 +02:00
Francois Gouget 9bfbfcbeb4 Assorted spelling, case and grammar fixes. 2006-06-26 13:06:11 +02:00
Alexandre Julliard e9cbc66e93 wined3d: Make the virtual table functions static where possible. 2006-06-10 13:15:32 +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 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
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
Roderick Colenbrander 54e5f9c465 wined3d: Dynamicly load GL_ARB_multitexture functions. 2006-05-25 20:17:32 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Ivan Gyurdiev 7757d7bc5c wined3d: Fix incorrect sizeof. 2006-05-15 16:04:07 +02:00
Ivan Gyurdiev 07f4f70487 wined3d: QueryInterface corrections. 2006-05-05 20:23:41 +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 63fd9a7a98 wined3d: Add WINED3DTEXTUREFILTERTYPE to wined3d_types.h. 2006-04-06 22:22:35 +02:00
H. Verbeet c2fe85e658 wined3d: Release the vertex declaration during stateblock cleanup. 2006-02-10 14:52:27 +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
Francois Gouget 6526c3772d Add trailing '\n's to ok() calls.
Remove spaces before '\n' in traces.
2006-01-03 12:10:37 +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
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
Francois Gouget 6d442aeb34 Assorted spelling fixes. 2005-11-23 20:14:43 +01:00
Francois Gouget 0edbaf7e80 Remove spaces before '\n' in traces. 2005-11-10 12:14:56 +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 b3563daca2 Implement state tracking for pixel shader constants. 2005-09-28 10:13:00 +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 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
Oliver Stieber 3f24b9164d Fix quite a few texturing problems and cases where text isn't being
correctly displated.
2005-08-22 10:07:10 +00:00
Oliver Stieber 9b0b803b47 Add support for vertex shader constants to the stateblock. 2005-08-17 10:27:01 +00:00
Oliver Stieber 313b01073c Track the state of softwareVertexProcessing. 2005-08-11 10:31:40 +00:00
Oliver Stieber bbc4f86aeb Fix stateblock loop errors. 2005-08-08 17:59:02 +00:00
Oliver Stieber 4e0f6a4501 Allow the WINED3DSBT_IMPL to be applied so that states can be synced
between render target contexts.
2005-08-08 11:01:17 +00:00
Oliver Stieber d344162f41 Separate the setting of the DirectX texture and sampler states from
the setting of OpenGL states (now in applyTextureStateState and
applySamplerState).
2005-08-01 10:58:31 +00:00
Oliver Stieber 5615513877 Separate the management of DirectX states and openGL states. 2005-08-01 09:20:55 +00:00
Oliver Stieber 7cb748fed2 Makes sure any internal reference counting is passed onto the parent,
any objects referenced by the internal stateblock are released when
the stateblock is released (we don't reference count while a
stateblock is recording, so recorded stateblocks have no references to
clean up).
2005-07-26 18:49:30 +00:00
Oliver Stieber 9253e0e39c Tidy up some comments and formatting. 2005-07-13 14:15:54 +00:00
Francois Gouget 28dc5a8afc Assorted spelling fixes. 2005-07-11 10:59:41 +00:00
Oliver Stieber abb11f30cd Implemented stateblocks in wined3d. 2005-07-05 14:05:18 +00:00
Dmitry Timoshkov eba47f1dfe Make remaining OLE interface vtables const. 2005-06-06 19:50:35 +00:00
Oliver Stieber 7b261656fd Added a stubbed out version of query to d3d9 and wined3d.
Update the d3d9 headers and creates wined3d types where d3d9 and d3d8
are incompatible.
2005-03-03 13:57:15 +00:00
Oliver Stieber 16e8689008 Implemented guids for wined3d. 2005-03-02 13:44:58 +00:00
James Hawkins 11db0ea655 Use only stored result of Interlocked* in AddRef/Release. 2005-01-12 19:50:22 +00:00
Jason Edmeades 41427857b1 Add render target support, and ensure there is a front and back buffer
created during device creation.
2005-01-09 17:37:02 +00:00
Jason Edmeades c4de952eb5 Add Clear, Present and EndScene support and fix a bug in the drawing
code.
2004-12-14 11:54:27 +00:00
Jason Edmeades 2003c7ab11 Add {G,S}etRenderState and {G,S}etTextureStageState support, and
ensure the stateblock is fully populated at device startup.
2004-12-13 13:35:38 +00:00
Jason Edmeades eba27af4f1 Add Get/Set Transform support, plus BeginScene (does nothing). 2004-11-28 15:04:41 +00:00
Jason Edmeades 289562eeb5 - Implement SetStreamSource
- Ensure wined3d objects maintain a reference count of at least that
  of the d3dx version.
2004-11-23 13:52:46 +00:00
Jason Edmeades 447d5ed048 Implement the beginnings of the stateblock class, and a first method
to use it.
2004-10-21 20:59:12 +00:00