Henri Verbeet
906071aa9f
d3d8: It's not an error to have a NULL texture bound to a stage.
2009-09-25 15:15:00 +02:00
Henri Verbeet
c64da00de7
wined3d: Rename IWineD3DDevice::GetIndices() to IWineD3DDevice::GetIndexBuffer().
2009-09-25 15:14:52 +02:00
Henri Verbeet
60e32659a7
wined3d: Rename IWineD3DDevice::SetIndices() to IWineD3DDevice::SetIndexBuffer().
2009-09-25 15:14:44 +02:00
Henri Verbeet
717419da11
d3d8: Add a separate function for pixel shader initialization.
2009-09-24 13:24:47 +02:00
Henri Verbeet
afed6a3f77
d3d8: Add a separate function for vertex shader initialization.
2009-09-24 13:24:11 +02:00
Henri Verbeet
b6d422446b
d3d8: Add a separate function for vertex declaration initialization from an FVF.
2009-09-23 12:35:42 +02:00
Henri Verbeet
f394dfc0f8
d3d8: Add a separate function for vertex declaration initialization.
2009-09-23 12:35:08 +02:00
Henri Verbeet
b1bf50d751
d3d8: Add a separate function for vertex buffer initialization.
2009-09-18 08:55:18 -05:00
Henri Verbeet
0201ddf264
d3d8: Add a separate function for index buffer initialization.
2009-09-18 08:55:11 -05:00
Henri Verbeet
76c61cf536
d3d8: Add a separate function for texture initialization.
2009-09-17 10:10:16 -05:00
Henri Verbeet
b5b58e423d
d3d8: Add a separate function for cube texture initialization.
2009-09-17 10:09:33 -05:00
Henri Verbeet
eedfc95eef
d3d8: Add a separate function for volume texture initialization.
2009-09-16 13:05:58 -05:00
Henri Verbeet
e9000d2e6c
wined3d: Don't free D3D volumes until the wined3d volume is destroyed.
2009-09-16 13:05:20 -05:00
Henri Verbeet
ff923245e1
d3d8: Add a separate function for volume initialization.
2009-09-16 13:05:06 -05:00
Henri Verbeet
a5214c306f
wined3d: Don't free D3D surfaces until the wined3d surface is destroyed.
...
This prevents for example a d3d9 depth stencil from being destroyed when it
has no external references but is still in use by the device/stateblock. A
nice side effect is that it simplifies handling of "implicit" surfaces like
the frontbuffer and backbuffers, as well as the forwarding of reference counts
for surfaces that are part of a texture.
2009-09-16 13:04:32 -05:00
Henri Verbeet
e02f7b2062
d3d8: Add a separate function for surface initialization.
2009-09-15 14:32:30 -05:00
Henri Verbeet
2b2fc827ce
wined3d: Remove unused parameters to drawPrimitive().
2009-09-11 12:09:14 +02:00
Henri Verbeet
fecbf7b416
d3d8: Remove trailing spaces.
2009-08-31 12:41:21 +02:00
Henri Verbeet
f9c791f9ca
d3d8: Use a wined3d cs for wined3d locking.
...
We will need this for d3d10, where both dxgi and d3d10core are making wined3d
calls. Right now d3d8/d3d9 also use this to protect their own data, but
eventually we should push this down into wined3d itself and use something a
bit more fine-grained. There's no good reason that doing e.g. a vertex buffer
upload in some thread should block all of wined3d.
2009-08-25 11:12:17 +02:00
Stefan Dösinger
6f5a1d9a15
wined3d: Filter WINED3DSTENCILCAPS_TWOSIDED in d3d8.
2009-08-07 14:56:48 +02:00
Henri Verbeet
a25947fa7e
d3d8: Add WINED3DFMT_W11V11U10 <=> D3DFMT_W11V11U10 conversion.
2009-06-19 13:52:42 +02:00
Henri Verbeet
1bbc65b155
d3d8: Deleting an invalid pixel shader handle should return D3D_OK.
2009-06-16 13:36:54 +02:00
Henri Verbeet
dc3958c079
d3d8: Do some more verification on handles.
2009-06-16 13:36:48 +02:00
Henri Verbeet
88162fabb8
wined3d: Get rid of the pointers in WINED3DSURFACE_DESC.
2009-06-15 13:42:29 +02:00
Henri Verbeet
4bc6b376e0
wined3d: Remove the useless "resource_type" parameter from IWineD3DDevice::CreateSurface().
2009-06-12 17:33:15 +02:00
Henri Verbeet
13a05caa97
wined3d: Remove the "declaration" parameter to IWineD3DDeviceImpl_CreateVertexShader().
...
Once upon a time this was used for creating fake vertex shader
attribute semantics for d3d8 shaders. We don't need this anymore since
device_stream_info_from_declaration() will use the vertex
declaration's output slot to load the data, if present. That also
avoids the potentially expensive matching of attribute semantics
between vertex shader and declaration for d3d8.
2009-05-28 12:42:18 +02:00
Henri Verbeet
f0e303b0f2
wined3d: Add the output signature to IWineD3DDevice_CreateVertexShader().
2009-05-26 13:49:55 +02:00
Henri Verbeet
9a579a43b1
wined3d: Use the output signature to map SM4 pixel shader outputs to the appropriate register.
2009-05-11 12:43:00 +02:00
Stefan Dösinger
9f1731edb6
d3d: Limit d3d8 and d3d9 vshader constants to 256.
...
DX10 cards support 512(ATI) or 1024(Nvidia) vertex shader constants in
GL. The dx9 DXCapsViewer shows that dx10 windows drivers only claim
256 constants on Windows, so we can and should do the same.
2009-04-27 13:23:36 +02:00
Henri Verbeet
6f33b97c94
wined3d: Get rid of the shared_handle parameter.
...
I don't expect us to support this in the near future, and right now it's just
dead code.
2009-04-23 14:22:06 +02:00
Stefan Dösinger
cb1c9dcda9
d3d: Remove the format from index buffers.
2009-04-09 16:28:25 +02:00
Stefan Dösinger
f0efa97413
wined3d: Remove the buffer fvf.
2009-04-09 16:28:10 +02:00
Stefan Dösinger
ff16f30677
d3d8: Store the fvf in the d3d8 vertex buffer.
2009-04-09 16:27:43 +02:00
Stefan Dösinger
513a493f00
wined3d: Merge IWineD3DIndexBuffer and IWineD3DBuffer.
2009-04-08 11:37:29 +02:00
Henri Verbeet
c0cefb3501
d3d8: Cleanup the vertexshader handling code a bit.
2009-03-24 12:56:50 +01:00
Henri Verbeet
4131135a9f
d3d8: Cleanup the pixelshader handling code a bit.
...
This mostly just reduces the nesting to something more sane.
2009-03-24 12:56:33 +01:00
Henri Verbeet
3f559f26d6
d3d8: Properly handle unsetting the pixelshader in SetPixelShader().
2009-03-24 12:56:25 +01:00
Henri Verbeet
775ea907a3
d3d8: Fix locking.
2009-03-23 14:08:03 +01:00
Henri Verbeet
24100cd026
d3d8: Release the d3d8 shader once we're done with it in IDirect3DDevice8Impl_GetPixelShader().
2009-03-13 11:28:35 +01:00
Henri Verbeet
f9d82ed1de
d3d8: Handles aren't supposed to be pointers.
...
This might even make d3d8 a bit more 64-bit safe.
2009-03-10 12:08:58 +01:00
Henri Verbeet
cbc8630019
d3d8: Make the shader handle table a bit more generic.
2009-03-10 12:08:32 +01:00
Henri Verbeet
954c3e22e1
d3d8: Don't call Release() in a while loop.
...
There should only ever be a single reference to these objects, since only
their handle is exposed outside d3d8. Should there be more references than
that, calling Release() in a while loop probably isn't the right approach.
2009-03-10 12:07:59 +01: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
602bb1f551
wined3d: Pass the vertex count rather than the primitive count to wined3d draw methods.
2009-03-05 16:16:24 +01:00
Henri Verbeet
0048a0373b
d3d10core: Keep a reference to the wined3d device in the d3d10 device.
2009-02-23 12:20:29 +01:00
Henri Verbeet
8cefc47d81
wined3d: Add DXGI formats to WINED3DFORMAT.
2009-02-20 11:10:37 +01:00
Henri Verbeet
d575b5fecb
d3d8: Explicitly convert between D3DFORMAT and WINED3DFORMAT values.
2009-02-20 11:09:54 +01:00
Francois Gouget
1f601015cd
d3d8: Make some device_parent_*() functions static.
2009-01-26 15:13:29 +01:00
Henri Verbeet
b5eaca542e
d3d8: Properly test for dynamic usage in device_parent_CreateSurface().
2009-01-16 13:29:52 +01:00
Henri Verbeet
a966293f59
wined3d: Add an IWineD3DDeviceParent interface.
...
Other than being a bit nicer than passing function pointers all over the
place, this helps dxgi/d3d10. While the swapchain itself is created in dxgi,
its surfaces are constructed in d3d10core, which makes it impractical for dxgi
to pass the appropriate function pointers.
2009-01-16 13:29:32 +01:00
Michael Stefaniuc
357c3f4a2c
d3d8: Remove superfluous pointer casts.
2009-01-14 13:51:01 +01:00
Henri Verbeet
352e60e6ed
d3d: Explicitly translate texture stage states.
...
Ddraw and d3d8 already translate half of them, it turns out the lookup
table actually saves lines there.
2009-01-06 12:45:32 +01:00
Henri Verbeet
007c648c20
d3d: Correct some debug levels.
2008-12-30 11:36:50 +01:00
Henri Verbeet
4adb342327
wined3d: Remove GetFVF() and SetFVF() from IWineD3DDevice.
2008-12-17 14:02:03 +01:00
Henri Verbeet
46572f682c
wined3d: Refuse to create shaders with a NULL function.
2008-12-16 12:51:49 +01:00
Henri Verbeet
0a47e1beb4
d3d8: Use the wined3d declaration to retrieve the d3d8 shader in IDirect3DDevice8Impl_GetVertexShader().
...
This makes it no longer necessary to create a wined3d vertex shader
when the d3d8 vertex shader has a NULL function.
2008-12-15 14:00:46 +01:00
Henri Verbeet
b9468a89fc
d3d8: Create a d3d8 declaration as parent for FVF based declarations.
2008-12-15 14:00:37 +01:00
Francois Gouget
ec7cbc26f5
d3d8: Make D3D8CB_CreateSurface() static.
2008-12-15 12:25:02 +01:00
Alexandre Julliard
00e0d1510b
d3d8: Make a function static.
2008-12-04 12:46:52 +01:00
Francois Gouget
d3c7b2f7cc
d3d8: Remove WINAPI on static functions where not needed.
2008-11-24 14:18:42 +01:00
Michael Stefaniuc
4f199a10ad
Remove the remaining casts of NULL.
2008-11-03 13:42:09 +01:00
Stefan Dösinger
93af8d3631
d3d: Do not restore the display mode in ddraw.
2008-11-03 13:34:13 +01:00
Henri Verbeet
092b51e82a
wined3d: Rename CreateAdditionalSwapChain to CreateSwapChain.
2008-10-28 12:46:46 +01:00
Henri Verbeet
43f5d8e5ad
d3d8: Fix IDirect3DDevice8::SetRenderTarget().
...
The render target should be left alone if the render target argument is
NULL. WineD3D calls should be done inside the critical section.
2008-09-10 12:05:25 +02:00
Henri Verbeet
01539fb926
d3d8: GetDepthStencilSurface returns D3DERR_NOTFOUND when no depth stencil is present.
2008-09-10 12:05:10 +02:00
H. Verbeet
898c2c9778
d3d8: Don't store shader_handle's.
...
They're not stable across table resizes.
2008-08-20 10:26:51 +02:00
Stefan Dösinger
e178ddd9e1
wined3d: Use a swapchain for GDI surfaces.
...
This is a long-needed cleanup aimed at removing the ddraw_primary,
ddraw_window, ddraw_width and ddraw_height members from
IWineD3DDeviceImpl, which just do not belong there. Destination
window and screen handling is supposed to be done by swapchains.
2008-08-19 12:21:32 +02:00
Tobias Jakobi
9ba3d03e78
d3d8: Fix IDirect3DDevice8::CreateImageSurface pool type.
2008-07-08 21:08:32 +02:00
Andrew Talbot
c8d495bac1
d3d8: Dangling pointers fix.
2008-05-05 19:46:15 +02:00
Stefan Dösinger
0fa0df7843
d3d8: Reject broken normal declaration types with fixed function.
2008-03-28 14:49:30 +01:00
Austin English
4777f26d61
Spelling fixes.
2008-03-27 11:10:07 +01:00
Stefan Dösinger
8869c0f147
d3d: De-pointerize the WINED3DCAPS structure.
2008-03-25 19:36:38 +01:00
Alexandre Julliard
980ee365a0
wined3d: Use unsigned int instead of size_t for element counts.
2008-01-07 17:17:04 +01:00
Gerald Pfeifer
55e92b9410
d3d8: Fix type of loop variable.
2008-01-04 12:12:31 +01:00
Gerald Pfeifer
21a9c2d2f9
wined3d: Removed dead FIXME checks.
2008-01-03 11:53:29 +01:00
Andrew Talbot
70d82dfbd9
d3d8: Remove unneeded casts.
2008-01-02 12:38:41 +01:00
Andrew Talbot
cd2964483a
d3d8: Remove unneeded casts.
2007-12-05 12:04:39 +01:00
Stefan Dösinger
6cecaa9852
d3d8: Release the vertex declarations array when destroying the device.
2007-11-20 12:53:00 +01:00
Stefan Dösinger
6ec6c941fa
wined3d: BaseVertexIndex can be negative.
2007-08-27 12:00:42 +02:00
Stefan Dösinger
a06e002e93
wined3d: Add a wined3d private WINED3DSBT_RECORDED.
2007-08-15 09:36:20 +02:00
Stefan Dösinger
527295e57f
d3d8: Convert fvfs to vertex declarations.
2007-06-21 13:08:57 +02:00
Stefan Dösinger
09aefe2108
d3d8: Hold the lock in IDirect3DDevice8 methods.
2007-06-11 13:54:33 +02:00
H. Verbeet
6ee356fca0
wined3d: Get rid of the pBaseVertexIndex parameter to IWineD3DDeviceImpl_GetIndices, use GetBaseVertexIndex instead.
2007-06-07 11:20:48 +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
94b3fddec8
d3d: Pass the cube face to Create*Texture's surface creation callback.
2007-05-01 11:42:25 +02:00
Stefan Dösinger
725057da47
d3d: Remove dependency on ddraw.h header.
2007-04-16 13:20:15 +02:00
Andrew Talbot
fb367f813a
d3d8: Void functions should not return a value.
2007-04-09 12:15:28 +02:00
Felix Nawothnig
ea0d7f17ca
d3d8: Add missing relay trace.
2007-04-07 11:01:26 +02:00
H. Verbeet
b68c72faef
d3d8: Implement IDirect3DDevice8_GetVertexShaderDeclaration.
2007-03-08 11:58:41 +01:00
H. Verbeet
138826b8cc
d3d8: Save the d3d8 vertex declaration.
2007-03-08 11:58:23 +01:00
Stefan Dösinger
ef68e32b03
wined3d/d3d8: Move todo about sw vp usage to d3d8.
2007-02-20 11:45:56 +01:00
H. Verbeet
a4bc52a89c
wined3d: Fix WINED3DPRESENT_PARAMETERS and use it instead of D3DPRESENT_PARAMETERS.
2007-02-16 12:31:03 +01:00
Stefan Dösinger
d74712690c
d3d8: Set WINED3DPRESENT_PARAMETERS.MultiSampleQuality to a valid pointer.
2007-02-15 17:22:35 +01:00
H. Verbeet
157205c085
d3d8: Don't store the d3d8 declaration in the wined3d object.
2007-02-14 13:56:50 +01:00
H. Verbeet
efed9aea1f
d3d8: Move loading local d3d8 vertex shader constants from wined3d to d3d8.
2007-02-14 13:54:55 +01:00
H. Verbeet
dea795f7ac
d3d9: Don't store the d3d9 declaration in the wined3d object.
2007-02-14 13:54:42 +01:00
H. Verbeet
32e5cac2be
wined3d: Get rid of the vertexDeclaration field in IWineD3DVertexShaderImpl.
2007-02-14 13:54:29 +01:00
H. Verbeet
5ad6766c85
d3d8: Store the d3d8 vertex declaration in the d3d8 vertex shader.
2007-02-14 13:54:17 +01:00
Stefan Dösinger
00aa8ab08c
d3d8: Deleting bound shaders unbinds them.
2007-02-13 12:07:46 +01:00