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