Commit Graph

312 Commits

Author SHA1 Message Date
Henri Verbeet 6ce848bee4 wined3d: Introduce a structure for stream state. 2010-09-14 11:43:54 -05:00
Henri Verbeet b68d257710 wined3d: Get rid of redundant comparisons against NULL / 0. 2010-09-14 09:43:33 -05:00
Henri Verbeet eb3c81fd69 wined3d: Sampler states are 1-based.
0 isn't a valid sampler state, and including it would overflow the
stateblock's contained_sampler_states array in
stateblock_init_contained_states().
2010-06-02 11:53:39 +02:00
Henri Verbeet dc67164d0d wined3d: Fix some more misspellings of "device". 2010-04-21 11:57:32 +02:00
Henri Verbeet 520f74de21 wined3d: Store the auto depth/stencil surface as an IWineD3DSurfaceImpl pointer in the device. 2010-04-20 11:14:35 +02:00
Henri Verbeet f41ee7cd0a wined3d: Capture the correct scissor rectangle.
This bug was originally introduced by
d4b63bbd87, and then propagated by
1f029a30db.
2010-04-06 11:48:51 +02:00
Henri Verbeet f5c8153edd wined3d: Handle stateblock capture for default lights created while recording.
For non-recorded stateblocks a light always exists in the device stateblock as
well, since that's where it's copied from. However, when SetLightEnable() is
called for a light that didn't a exist yet while recording a stateblock, the
light is only created on the recorded stateblock.
2010-01-05 12:19:14 +01:00
Henri Verbeet 79a2045395 wined3d: NULL vertex declarations are captured, but not applied. 2009-12-21 15:01:22 +01:00
Henri Verbeet a389fe551e wined3d: IWineD3DStateBlockImpl no longer implements IWineD3DBase. 2009-12-18 11:38:59 +01:00
Henri Verbeet b3defd4c80 wined3d: Rename "wineD3DDevice" to "device". 2009-12-10 11:54:47 +01:00
Henri Verbeet b6ef17f23d wined3d: Remove unused GetDevice() implementations. 2009-12-09 13:51:04 +01:00
Henri Verbeet 54f3dec8e6 wined3d: Rename the "wineD3D" device field to "wined3d". 2009-12-08 12:33:29 +01:00
Henri Verbeet dd5fc79f56 wined3d: The stateblock doesn't really need a parent. 2009-12-04 14:34:59 +01:00
Stefan Dösinger 8eef221d20 d3d: Handle the pointsize_min default difference in d3d8. 2009-11-03 21:22:12 +01:00
Henri Verbeet 48e03bc189 wined3d: Introduce a separate structure for various OpenGL implementation limits. 2009-10-29 13:09:27 +01:00
Henri Verbeet d7b087618b wined3d: Remove some unused GLINFO_LOCATION definitions. 2009-10-29 13:09:20 +01:00
Stefan Dösinger 70d6304a21 wined3d: Use the shader backend reported constant limit outside the shader backend. 2009-10-26 11:41:43 +01:00
Henri Verbeet 6be41fd59a wined3d: Get rid of GL_LIMITS. 2009-10-22 10:46:05 +02:00
Henri Verbeet 594497f4bb wined3d: Simplify IWineD3DStateBlockImpl_Apply().
Consistently use the stateblock's contained states to determine what to apply.
2009-10-15 12:06:18 +02:00
Henri Verbeet ce10d5f186 wined3d: Don't apply more than num_contained_render_states in IWineD3DStateBlockImpl_Apply(). 2009-10-15 12:06:18 +02:00
Henri Verbeet 1f029a30db wined3d: Simplify IWineD3DStateBlockImpl_Capture().
Consistently use the stateblock's contained states to determine what to
capture.
2009-10-14 11:26:38 +02:00
Henri Verbeet a24d14796a wined3d: Remove the useless "changed" and "enabledChanged" fields from struct wined3d_light_info. 2009-10-14 11:26:26 +02:00
Henri Verbeet 3bc9d1894d wined3d: Rename PLIGHTINFOEL to something less awful. 2009-10-14 11:26:17 +02:00
Henri Verbeet 580cd8c5bb wined3d: Get rid of stateblock_copy_values().
Use IWineD3DStateBlockImpl_Capture() for the initial stateblock capture
instead.
2009-10-14 11:26:02 +02:00
Henri Verbeet 8949a2c1ad wined3d: Remove some code that doesn't make sense.
This was introduced by abb11f30cd, but I don't
see how it could ever do something useful. Perhaps that's a lack of
imagination on my part, but the only situation in which device->stateBlock
should be NULL is while creating the initial stateblock, and in that case we
just returned in the line above. Setting the stream frequency of all streams
to 0x01010101 doesn't make sense either.
2009-10-13 11:38:28 +02:00
Henri Verbeet da5b491606 wined3d: Capture on a recorded stateblock doesn't record the vertexdeclaration in d3d9. 2009-10-13 11:38:28 +02:00
Henri Verbeet 526839068f wined3d: Vertex state stateblocks should also record the vertex declaration. 2009-10-13 11:38:28 +02:00
Henri Verbeet 3dbfda1ab3 wined3d: Capture some more renderstates in vertex and pixel stateblocks. 2009-10-09 11:50:29 +02:00
Henri Verbeet 442beb1dcf wined3d: Clear resources that we aren't recording in stateblock_init(). 2009-10-09 11:50:29 +02:00
Henri Verbeet 5c22971561 wined3d: Keep a reference to the vertex declaration initially captured by CreateStateBlock() as well. 2009-10-06 12:02:48 +02:00
Henri Verbeet b5de2fcb1c wined3d: Keep references to the textures initially captured by CreateStateBlock() as well. 2009-10-06 12:02:44 +02:00
Henri Verbeet 048c9450d9 wined3d: Use the actual array sizes to determine the number of the various pixel/vertex states. 2009-10-02 11:53:09 +02:00
Henri Verbeet 8b3f868774 wined3d: Move the pixel/vertex states arrays to stateblock.c. 2009-10-02 11:53:03 +02:00
Henri Verbeet 15d4eee58b wined3d: Use stateblock_init_contained_states() for WINED3DSBT_VERTEXSTATE stateblocks. 2009-10-02 11:52:49 +02:00
Henri Verbeet d500c9b795 wined3d: Add a separate function to initialize the saved states for WINED3DSBT_VERTEXSTATE. 2009-10-02 11:52:43 +02:00
Henri Verbeet 93c949eba5 wined3d: Use stateblock_init_contained_states() for WINED3DSBT_PIXELSTATE stateblocks. 2009-10-01 12:03:55 +02:00
Henri Verbeet 5a01619d31 wined3d: Add a separate function to initialize the saved states for WINED3DSBT_PIXELSTATE. 2009-10-01 12:03:49 +02:00
Henri Verbeet 841afe485e wined3d: Use stateblock_init_contained_states() for WINED3DSBT_ALL stateblocks. 2009-10-01 12:03:34 +02:00
Henri Verbeet c5029f83ec wined3d: Simplify stateblock_savedstates_set().
We only need to handle the case where "value" is TRUE, since the stateblock
data will be filled with zeroes by default.
2009-10-01 12:03:28 +02:00
Henri Verbeet 75fe879c76 wined3d: Get rid of stateblock_savedstates_copy().
This is redundant because we call stateblock_savedstates_set() further down.
2009-10-01 12:03:21 +02:00
Henri Verbeet be0b7355fc wined3d: Add a separate function for initializing the "contained_*" fields from the "changed" field. 2009-09-30 14:31:59 +02:00
Henri Verbeet 5f3425b89b wined3d: Get rid of stateblock_copy(). 2009-09-30 14:31:59 +02:00
Henri Verbeet 345b329217 wined3d: Add a separate function for copying stateblock values. 2009-09-30 14:31:58 +02:00
Henri Verbeet 844dda20ff wined3d: Make some internal stateblock function arguments const. 2009-09-30 14:31:58 +02:00
Henri Verbeet 5737efe71a wined3d: Explicitly pass gl_info to stateblock_savedstates_set(). 2009-09-30 14:31:58 +02:00
Henri Verbeet 49f712beff wined3d: Explicitly pass gl_info to stateblock_savedstates_copy(). 2009-09-29 14:22:34 +02:00
Henri Verbeet 6d3e5a9cce wined3d: Pass IWineD3DStateBlockImpl pointers to stateblock_copy(). 2009-09-29 14:22:34 +02:00
Henri Verbeet 4ed126f5dc wined3d: Clear the correct "activeLights" array in stateblock_copy(). 2009-09-29 14:22:34 +02:00
Henri Verbeet 664057ce6a wined3d: Add a separate function for state block initialization. 2009-09-29 14:22:34 +02:00
Henri Verbeet f9786d7eda wined3d: Just use the actual array size as argument to memcpy() in stateblock_copy(). 2009-09-28 12:38:39 +02:00
Henri Verbeet dca3c6e7c6 wined3d: Keep vertex declaration references in the stateblock. 2009-09-28 12:38:18 +02:00
Henri Verbeet 709aedf5f9 wined3d: Properly keep texture references in the stateblock. 2009-09-28 12:38:12 +02:00
Henri Verbeet 60e32659a7 wined3d: Rename IWineD3DDevice::SetIndices() to IWineD3DDevice::SetIndexBuffer(). 2009-09-25 15:14:44 +02:00
Henri Verbeet 560d63548d wined3d: Remove trailing spaces. 2009-08-27 11:45:37 +02:00
Henri Verbeet 35826e9761 wined3d: Fix a condition in record_lights(). 2009-08-07 12:11:35 +02:00
Henri Verbeet 88162fabb8 wined3d: Get rid of the pointers in WINED3DSURFACE_DESC. 2009-06-15 13:42:29 +02:00
Stefan Dösinger cb1c9dcda9 d3d: Remove the format from index buffers. 2009-04-09 16:28:25 +02:00
Stefan Dösinger 513a493f00 wined3d: Merge IWineD3DIndexBuffer and IWineD3DBuffer. 2009-04-08 11:37:29 +02:00
Henri Verbeet aa3027a604 wined3d: Merge IWineD3DVertexBuffer with IWineD3DBuffer.
That still leaves IWineD3DIndexBuffer, but that code is also mostly similar,
except for the conversion code (which will be unused there).
2009-03-06 15:35:58 +01:00
Henri Verbeet 702eeb6b0c wined3d: Add separate methods for setting the primitive type. 2009-03-05 16:16:25 +01:00
Henri Verbeet 691894d1ab wined3d: Also apply the last sampler state.
In practice we don't implement WINED3DSAMP_DMAPOFFSET anyway, so this
is unlikely to make much of a difference.
2009-01-07 12:21:37 +01:00
Henri Verbeet bddf5e76ea wined3d: Convert textureState to a bitmap in struct SAVEDSTATES. 2009-01-06 12:45:52 +01:00
Henri Verbeet a8697d90e4 wined3d: Renumber WINED3DTEXTURESTAGESTATETYPE enum elements.
Saves some space by not having unused entries is the arrays tracking these
states.
2009-01-06 12:45:43 +01:00
Henri Verbeet e8ba733706 wined3d: Remove unused enum elements from WINED3DTEXTURESTAGESTATETYPE. 2009-01-05 12:41:31 +01:00
Henri Verbeet fd33f0f97f wined3d: Convert samplerState to a bitmap in struct SAVEDSTATES. 2009-01-05 12:41:17 +01:00
Henri Verbeet c33b38117e wined3d: Convert renderState to a bitmap in struct SAVEDSTATES. 2009-01-05 12:41:08 +01:00
Henri Verbeet fc39831e4c wined3d: Convert transform to a bitmap in struct SAVEDSTATES. 2009-01-05 12:40:57 +01:00
Henri Verbeet 9a889f6b0b wined3d: Convert textures to a bitmap in struct SAVEDSTATES. 2009-01-03 14:55:31 +01:00
Henri Verbeet 3b5c75d991 wined3d: Convert clipplane to a bitmap in struct SAVEDSTATES. 2009-01-02 11:53:04 +01:00
Henri Verbeet 52a900d4e8 wined3d: Convert streamSource and streamFreq to bitmaps in struct SAVEDSTATES. 2009-01-02 11:52:34 +01:00
Henri Verbeet 73e042496c wined3d: Fix a few format specifiers in IWineD3DStateBlockImpl_Capture(). 2009-01-02 11:51:54 +01:00
Henri Verbeet 29b826b39e wined3d: D3DRS_POINTSIZE_MIN is initially 0.0f for d3d8. 2008-12-29 12:16:52 +01:00
Henri Verbeet de494ffe3c wined3d: The initial value for D3DRS_POINTSIZE_MAX depends on the pointsize limit. 2008-12-29 12:16:42 +01:00
Henri Verbeet 4a19d893e5 wined3d: Only apply shader constants that changed.
This improves performance a bit for applications that use a lot of
shaders with a lot of constants.
2008-12-20 11:11:45 +01:00
Henri Verbeet ef7365a4cd wined3d: Set the initial viewport in InitStartupStateBlock().
>From 8aa3fb7ceb6fb93abf71520c852403284a9f8c76 Mon Sep 17 00:00:00 2001
From: Henri Verbeet <hverbeet@codeweavers.com>
Date: Fri, 19 Dec 2008 19:21:55 +0100
Subject: wined3d: Set the initial viewport in InitStartupStateBlock().
2008-12-20 11:11:34 +01:00
Henri Verbeet 4adb342327 wined3d: Remove GetFVF() and SetFVF() from IWineD3DDevice. 2008-12-17 14:02:03 +01:00
Henri Verbeet 3e035ddf05 wined3d: Don't leak memory on failure in allocate_shader_constants(). 2008-12-12 11:40:44 +01:00
Henri Verbeet 70ed814b95 wined3d: Get rid of the textureDimensions field in the state block. 2008-12-12 11:40:32 +01:00
Henri Verbeet bcf0b4b128 wined3d: Compare & copy with the correct clipplane size in IWineD3DStateBlockImpl_Capture(). 2008-12-10 10:50:30 +01:00
Andrew Talbot c3cdc671a4 wined3d: Remove unneeded address-of operators from array names. 2008-12-08 22:03:06 +01:00
Henri Verbeet 70968e69ac wined3d: Use a bitmask to store which bool and int constants are set.
Note that constants_set was never actually NULL for
shader_glsl_load_constantsB() and shader_glsl_load_constantsI().
2008-12-03 09:49:10 +01:00
Henri Verbeet 0ae60765de wined3d: Make functions static where possible. 2008-12-03 09:47:35 +01:00
Henri Verbeet 5532c990b6 wined3d: Const correctness fixes. 2008-12-02 14:04:15 +01:00
Michael Stefaniuc efeab9d200 wined3d: Use the integer variant of zero instead of casting "0.0". 2008-11-04 11:26:05 +01:00
Alexandre Julliard 6cfef95ce7 wined3d: Convert source files to utf-8. 2008-10-18 19:21:20 +02:00
Rico Schüller 525e30e6b7 wined3d/d3d9: Set the initial scissorrect to the dimesions of the backbuffer from the first swapchain of the device. 2008-09-04 12:26:59 +02:00
Andrew Talbot 0064976d54 wined3d: Remove unneeded address-of operators from array names. 2008-07-14 11:50:22 +02:00
H. Verbeet a637fda7bf wined3d: Store the current GLSL program in the backend's private data. 2008-07-08 10:47:30 +02:00
Austin English 6e59cd2c34 Spelling fixes. 2008-04-22 12:20:12 +02:00
Stefan Dösinger b1d8af7926 wined3d: Update copyright lines. 2008-04-02 20:22:42 +02:00
Alexander Dorofeyev 165970992a wined3d: Make device palettes dynamically allocated. 2008-03-27 11:09:06 +01:00
Andrew Talbot 19c105c79c wined3d: Assign to structs instead of using memcpy. 2008-03-21 11:24:05 +01:00
Stefan Dösinger 220d9eb44c wined3d: Move the dummy texture creation to the device. 2008-02-26 11:31:47 +01:00
Stefan Dösinger e4f8a2da2b wined3d: Depth stencil fixes. 2007-11-14 11:58:36 +01:00
Stefan Dösinger 36aef3dc54 wined3d: Hold an internal reference on pixel and vertex shaders. 2007-08-28 11:55:53 +02:00
Stefan Dösinger 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