Commit Graph

319 Commits

Author SHA1 Message Date
Henri Verbeet e53a277305 wined3d: Get rid of the WINED3DPOOL typedef. 2012-01-18 12:37:38 +01:00
Henri Verbeet cf636cc3b3 ddraw: Allow querying the surface interface if a device was created from a surface. 2012-01-18 12:37:38 +01:00
Henri Verbeet e70990041b wined3d: Get rid of the WINED3DTEXTUREFILTERTYPE typedef. 2012-01-13 17:34:31 +01:00
Henri Verbeet afb64506ba ddraw: Implement width and height changes in ddraw_surface7_SetSurfaceDesc(). 2012-01-13 17:34:30 +01:00
Francois Gouget daeb4d6d29 ddraw: Make ddraw_reset_enum_callback() and ddraw_surface_destroy() static. 2012-01-09 12:52:11 +01:00
Henri Verbeet 9a8491045e wined3d: Get rid of the WINED3DMULTISAMPLE_TYPE typedef. 2012-01-09 12:22:17 +01:00
Henri Verbeet 31f3120815 ddraw: Convert to integer before adjusting the clipped source rect.
This makes a difference for the bottom and right edges, and we could end up
with an empty source rectangle otherwise.
2012-01-06 19:24:20 +01:00
Henri Verbeet 223b0736c0 ddraw: Disallow clipped blits in ddraw_surface7_BltFast(). 2012-01-05 20:54:21 +01:00
André Hentschel b5ba054ce8 Assorted header comment cleanup. 2012-01-04 19:35:13 +01:00
Michael Stefaniuc f1f5536d8f ddraw: Fix two memory leaks (Smatch). 2012-01-03 12:37:58 +01:00
Henri Verbeet 10d2a9375d ddraw: Add support for clipped blits. 2011-12-13 18:58:56 +01:00
Henri Verbeet e6fb4537f0 ddraw: Move clipper handling to ddraw. 2011-12-13 18:58:37 +01:00
Stefan Dösinger 481e2f3366 ddraw: SetSurfaceDesc can set width, height and pitch under certain conditions. 2011-12-08 18:04:18 +01:00
Henri Verbeet 3dd03f642d wined3d: Get rid of the WINEDDCOLORKEY typedef. 2011-12-08 10:27:53 +01:00
Henri Verbeet eafebc0491 wined3d: Get rid of the WINED3DLOCKED_RECT typedef. 2011-12-06 15:50:58 +01:00
Henri Verbeet 3a2921c559 ddraw: Keep the primary surface mapped at the same address for early ddraw versions. 2011-11-30 11:50:58 +01:00
Henri Verbeet 3430e11605 wined3d: Add a flags parameter to wined3d_surface_create(). 2011-11-30 11:50:48 +01:00
Henri Verbeet 0f10ac9358 ddraw: Create the wined3d swapchain when setting the cooperative level. 2011-11-29 13:22:54 +01:00
Henri Verbeet 2e1c0d83c1 wined3d: Get rid of the WINED3DGAMMARAMP typedef. 2011-11-22 10:52:45 +01:00
Henri Verbeet 8e6f5c34a2 ddraw: We can't render to the desktop window either. 2011-11-18 14:26:16 +01:00
Stefan Dösinger c3d6061593 ddraw: Add more tests and fixes for SetSurfaceDesc. 2011-11-15 19:37:28 +01:00
Henri Verbeet a2963b662c ddraw: Use wined3d_mutex_lock() / wined3d_mutex_unlock() for locking. 2011-11-14 15:25:21 +01:00
Henri Verbeet fcf96b634a wined3d: Create the DIB section for DDSCAPS_OWNDC surfaces on initialization. 2011-10-31 23:52:51 +01:00
Henri Verbeet 1bf36a3f40 ddraw: Implement ddraw_surface7_BltFast() on top of wined3d_surface_blt(). 2011-10-31 16:46:19 +01:00
Henri Verbeet 38abddca68 ddraw: Only update primary_lock when we're actually locking the frontbuffer.
This fixes a regression introduced by commit
8330558e12.
2011-10-27 19:34:09 +02:00
Henri Verbeet d09ad48328 ddraw: Read/draw from/to the actual screen when there is no swapchain window. 2011-10-25 16:57:24 +02:00
Henri Verbeet 8330558e12 ddraw: Keep track of the affected rectangle for ddraw_surface_update_frontbuffer(). 2011-10-25 16:57:24 +02:00
Henri Verbeet 4408c5abc6 ddraw: Clear attached_iface before releasing it in ddraw_surface_delete_attached_surface().
Spotted by Dan Kegel / Valgrind.
2011-10-19 12:23:23 +02:00
Henri Verbeet 10b54a7860 ddraw: Initialize the surface desc's dwFlags field to 0 before surface locks.
Otherwise DDSD2_to_DDSD() would try to convert uninitialized data on failure.
Spotted by Dan Kegel / Valgrind.
2011-10-19 12:23:15 +02:00
Henri Verbeet 14ca56ed97 ddraw: Destroy the swapchain in ddraw_destroy() if it still exists. 2011-10-18 15:10:21 +02:00
Ričardas Barkauskas 7dc08745d1 ddraw: Use impl_from_IDirect3DDevice7 for application provided interfaces. 2011-10-17 18:24:42 +02:00
Ričardas Barkauskas d32df839ac ddraw: COM cleanup for IDirect3DDevice2 interface. 2011-10-17 18:23:42 +02:00
Ričardas Barkauskas a870753dba ddraw: Use unsafe_impl_from_IDirect3DDevice2 for application provided interfaces. 2011-10-17 18:23:18 +02:00
Ričardas Barkauskas d5912c533f ddraw: COM cleanup for IDirect3DDevice interface. 2011-10-17 18:23:09 +02:00
Ričardas Barkauskas d19e416dee ddraw: Use unsafe_impl_from_IDirect3DDevice for application provided interfaces. 2011-10-17 18:22:44 +02:00
Octavian Voicu b44eef7085 ddraw: Keep track of interface attached by AddAttachedSurface and detach correct interface when parent is released. 2011-10-12 20:52:46 +02:00
Octavian Voicu a843acef55 ddraw: Be consistent about param and local var naming across AddAttachedSurface implementations. 2011-10-11 20:12:10 +02:00
Ričardas Barkauskas a8616b7fcb ddraw: Use unsafe_impl_from_IDirectDrawPalette for application provided interfaces. 2011-10-04 15:24:20 -05:00
Henri Verbeet 4228bbc5bf ddraw: Store the wined3d swapchain reference in the ddraw object instead of the primary surface. 2011-09-20 16:21:38 +02:00
Henri Verbeet b9fcf71c71 ddraw: Use real flips. 2011-09-16 17:23:08 +02:00
Henri Verbeet 5186882098 ddraw: Store the primary surface. 2011-09-16 17:23:08 +02:00
Henri Verbeet f60b54d952 ddraw: Get rid of the surfaces field in IDirectDrawImpl. 2011-09-15 15:41:40 +02:00
Henri Verbeet aa5590b061 ddraw: Remove the unused "depthstencil" field from IDirectDrawImpl. 2011-09-12 10:08:43 +02:00
Francois Gouget 489527fe44 ddraw: Remove WINAPI on static functions where not needed. 2011-09-08 20:08:07 +02:00
Stefan Dösinger 029c5a6cf1 ddraw: Convert DDSURFACEDESC2 in lock. 2011-09-07 11:15:32 +02:00
Stefan Dösinger 8e79a7e664 ddraw: Add some NULL pointer tests. 2011-09-07 11:15:09 +02:00
Ričardas Barkauskas d9ada7929a ddraw: Don't allow SetPalette on mipmap sublevels instead of root surfaces. 2011-09-02 18:28:25 +02:00
Stefan Dösinger c42277883a ddraw: Introduce a function to convert a DDSURFACEDESC2 to a DDSURFACEDESC. 2011-08-31 19:43:09 +02:00
Stefan Dösinger 76fecde8fb ddraw: Introduce a function to convert a DDSURFACEDESC to a DDSURFACEDESC2. 2011-08-31 19:43:09 +02:00
Henri Verbeet 43ad90ce31 ddraw: Get rid of the ImplType fields in IDirectDrawImpl and IDirectDrawSurfaceImpl. 2011-08-31 19:42:55 +02:00
Henri Verbeet c89a3ffe80 ddraw: Get rid of the surface implementation switching code. 2011-08-31 19:42:52 +02:00
Stefan Dösinger caff742d41 ddraw: Trust wined3d to give us what we asked for. 2011-08-29 13:56:17 +02:00
Stefan Dösinger 30d9926a95 ddraw: Don't re-write the surface's pixelformat.
The pixelformat is passed in in ddraw form in the desc parameter, which is copied
into the surface's DDSURFACEDESC2 structure, so the format is already set.
2011-08-29 13:56:11 +02:00
Ričardas Barkauskas abf8728e1f ddraw: Don't allow setting palette on non root surfaces. 2011-08-22 17:15:48 +02:00
Henri Verbeet 831801dd60 ddraw: Remove rectangle validation from ddraw_surface7_BltFast().
This is already done by wined3d_surface_blt().
2011-08-05 09:17:43 +02:00
Henri Verbeet 92e616f355 ddraw: Remove rectangle validation from ddraw_surface7_Blt().
This is already done by wined3d_surface_blt().
2011-08-04 09:04:44 +02:00
Ričardas Barkauskas c1aaacd58c ddraw: Change IDirect3DTexture2_vtbl to IDirect3DTexture2_iface. 2011-07-29 19:19:32 +02:00
Ričardas Barkauskas 8000fc4e35 ddraw: Rename surface_from_texture2 to impl_from_IDirect3DTexture2. 2011-07-29 19:19:25 +02:00
Ričardas Barkauskas 15f16e8f5e ddraw: Use unsafe_impl_from_IDirect3DTexture2 for application provided interfaces. 2011-07-29 19:19:11 +02:00
Ričardas Barkauskas 91a1ed8be9 ddraw: COM cleanup for IDirect3DTexture interface. 2011-07-29 19:19:07 +02:00
Ričardas Barkauskas 0a3582865e ddraw: Use unsafe_impl_from_IDirect3DTexture() for application provided interfaces. 2011-07-29 19:18:59 +02:00
Ričardas Barkauskas e5d69ba923 ddraw: Separate IDirectDrawGammaControl reference count. 2011-06-28 11:57:51 -05:00
Ričardas Barkauskas 90112e97ea ddraw: Move IDirect3DTexture and IDirect3DTexture2 to IDirectDrawSurface reference counts. 2011-06-28 11:57:50 -05:00
Ričardas Barkauskas 5f6d7021aa ddraw: Separate IDirectDrawSurface and IDirectDrawSurface7 reference counts. 2011-06-28 11:57:50 -05:00
Ričardas Barkauskas 9190d349d2 ddraw: Separate IDirectDrawSurface4 reference count. 2011-06-28 11:57:50 -05:00
Ričardas Barkauskas c7e5e6d2b5 ddraw: Use ddraw_surface_release_iface to destroy leftover surfaces. 2011-06-28 11:57:50 -05:00
John Edmonds ed1788bad0 ddraw: Warning message about an invalid structure size will now print the structure's size. 2011-06-27 15:03:55 -05:00
Henri Verbeet acd8c58725 ddraw: Implement surface private data handling on top of wined3d_resource. 2011-06-22 11:25:27 +02:00
Ričardas Barkauskas f0634f7a4b ddraw: Separate IDirectDrawSurface3 reference count. 2011-06-21 17:11:53 +02:00
Ričardas Barkauskas 167ffc7b4b ddraw: Separate IDirectDrawSurface2 reference count. 2011-06-21 17:10:55 +02:00
Ričardas Barkauskas 104e68da45 ddraw: Use helper function to delete attached surfaces. 2011-06-21 17:10:17 +02:00
Ričardas Barkauskas ec754ab98b ddraw: AddRef the surface in AddAttachedSurface instead of helper function. 2011-06-21 17:10:05 +02:00
Ričardas Barkauskas 4b8fd522f6 ddraw: Add iface count for IDirectSurfaceImpl. 2011-06-21 17:09:52 +02:00
Ričardas Barkauskas 8959a1395a ddraw: Remove ddraw_set_surface_version and set surface version when initialising it. 2011-06-21 17:09:02 +02:00
Michael Stefaniuc 9e50efd89f ddraw: Use unsafe_impl_from_IDirectDrawClipper for an app provided iface. 2011-06-20 19:32:03 +02:00
Michael Stefaniuc 588ddee736 ddraw: COM cleanup for the IDirectDrawClipper iface. 2011-06-20 19:32:03 +02:00
Marcus Meissner 7e1ccdef71 ddraw: Removed superflous NULL check (Coverity). 2011-06-14 15:23:22 +02:00
Francois Gouget 9c99738780 ddraw: Make unsafe_impl_from_IDirectDrawSurface{2,3}() static. 2011-06-13 11:32:49 +02:00
Ričardas Barkauskas f3ae1b99f6 ddraw: Separate IDirectDrawSurface vtable. 2011-06-10 15:26:52 +02:00
Ričardas Barkauskas 27063ffeaa ddraw: Use unsafe_impl_from_IDirectDrawSurface() for application provided interfaces. 2011-06-10 15:26:29 +02:00
Ričardas Barkauskas a8ee7c5e00 ddraw: Separate IDirectDrawSurface2 vtable. 2011-06-10 15:26:22 +02:00
Michael Stefaniuc abe0ee33eb ddraw: COM cleanup for the IDirectDrawGammaControl iface. 2011-06-08 17:37:12 +02:00
Ričardas Barkauskas bb063b994c ddraw: Separate IDirectDrawSurface4 vtable. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 4582562f55 ddraw: Use unsafe_impl_from_IDirectDrawSurface4. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 2f02bbb41f ddraw: Change lpVtbl to IDirectDrawSurface7_iface. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 93dfe5afc3 ddraw: Use impl_from_IDirectDrawSurface7() instead of casts. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 11bf99c5fd ddraw: Separate other conversion to IDirectDrawSurfaceImpl from conversions to ifaces. 2011-06-06 21:49:23 +02:00
Ričardas Barkauskas 705548a6ef ddraw: Separate conversion from IDirectDrawSurface7 iface to object and conversion to other iface. 2011-06-06 21:49:22 +02:00
Ričardas Barkauskas 28ce1c00a7 ddraw: Use unsafe_impl_from_IDirectDrawSurface7() for application provided interfaces. 2011-06-06 21:49:22 +02:00
Ričardas Barkauskas 6d5be5033e ddraw: Change IDirectDrawSurface3_vtbl to IDirectDrawSurface3_iface. 2011-05-31 19:24:10 +02:00
Ričardas Barkauskas ecfb5c7a69 ddraw: Use a This variable in the IDirectDraw3 methods that lack one. 2011-05-31 19:23:41 +02:00
Ričardas Barkauskas 7df083193d ddraw: Rename surface_from_surface3() to impl_from_IDirectDrawSurface3(). 2011-05-31 19:23:39 +02:00
Ričardas Barkauskas fb6ceb971b ddraw: Use unsafe_impl_from_IDirectDrawSurface3() for application provided interfaces. 2011-05-31 19:22:52 +02:00
Dylan Smith f7002c6627 ddraw: Don't interpret end padding as dwCaps2 for x64. 2011-05-24 12:47:28 +02:00
Henri Verbeet 8d4ca1f815 wined3d: Remove COM from the device implementation. 2011-05-17 10:06:18 +02:00
Henri Verbeet 979e3744f7 wined3d: Remove state management methods from the IWineD3DDevice interface. 2011-05-17 10:06:15 +02:00
Henri Verbeet 00a5f38595 wined3d: Remove object creation methods from the IWineD3DDevice interface. 2011-05-11 14:56:48 +02:00
Henri Verbeet 1c1de920e3 wined3d: Remove COM from the surface implementation. 2011-04-29 16:52:13 +02:00
Henri Verbeet 03b388609d ddraw: Destroy the ddraw surface after the wined3d texture is destroyed. 2011-04-21 16:53:42 +02:00
Henri Verbeet 6ff226f502 ddraw: Destroy the ddraw surface after the wined3d surface is destroyed. 2011-04-21 16:53:41 +02:00
Henri Verbeet cbf78c5d49 ddraw: Release the wined3d surface first in ddraw_surface_destroy(). 2011-04-21 16:53:41 +02:00
Henri Verbeet 25c0941e50 ddraw: Add a separate function for surface cleanup. 2011-04-21 16:53:41 +02:00
Henri Verbeet 5492560cb5 ddraw: Introduce a separate function for texture creation. 2011-04-20 13:06:45 +02:00
Henri Verbeet 2b1b5dba43 ddraw: Don't bother unsetting resources on surface destruction.
Uninit3D() / stateblock destruction already takes care of this.
2011-04-20 13:06:40 +02:00
Henri Verbeet 3ec19590d5 wined3d: Remove COM from the swapchain implementation. 2011-04-14 17:13:57 +02:00
Henri Verbeet d2e665230a wined3d: Get rid of the swapchain destroy callback. 2011-04-13 14:13:51 +02:00
Henri Verbeet fd8e18bd2b wined3d: Remove COM from the texture implementation. 2011-03-28 17:08:52 +02:00
Henri Verbeet 2b18192e7a wined3d: Get rid of IWineD3DSurface::GetDesc(). 2011-03-11 11:40:31 +01:00
Henri Verbeet 756fdb7c5a wined3d: Merge the various resource desc structures. 2011-03-09 12:28:58 +01:00
Henri Verbeet 5963483fc2 wined3d: Remove COM from the palette. 2011-02-03 13:15:17 +01:00
Henri Verbeet 5765632d9f wined3d: Remove COM from the vertex declaration. 2011-02-03 13:15:17 +01:00
Michael Stefaniuc 9745108096 ddraw: COM cleanup for the IDirectDraw7 iface. 2011-01-19 12:32:06 +01:00
Michael Stefaniuc cd8c18e83c ddraw: COM cleanup for the IDirectDraw4 iface. 2011-01-19 12:32:00 +01:00
Michael Stefaniuc 4202f09100 ddraw: COM cleanup for the IDirectDraw2 iface. 2011-01-19 12:31:45 +01:00
Michael Stefaniuc a59347fcd2 ddraw: COM cleanup for the IDirectDraw iface. 2011-01-19 12:31:12 +01:00
Michael Stefaniuc 497944f2bd ddraw: COM cleanup for the IDirect3D7 iface. 2011-01-19 12:31:04 +01:00
Henri Verbeet cb3a133b28 ddraw: Fix some TRACEs. 2010-11-02 13:17:01 +01:00
Ričardas Barkauskas 78e4a096a3 ddraw: Surfaces with DDSCAPS_3DDEVICE and DDSCAPS_ZBUFFER can't be render targets. 2010-10-25 15:31:12 +02:00
Ričardas Barkauskas ff659522f6 ddraw: Fix DDSCAPS_3DDEVICE surfaces always setting DDSCAPS_VISIBLE. 2010-10-25 15:31:07 +02:00
Henri Verbeet 95469309d6 wined3d: Consistently use Map/Unmap for mapping resources. 2010-10-14 17:54:52 +02:00
Henri Verbeet 4d19daaa71 ddraw: Use a linear filter in ddraw_surface7_Blt(). 2010-10-12 17:36:22 +02:00
Henri Verbeet 53183b4cf3 wined3d: IWineD3DSurface_GetDesc() should never fail. 2010-09-08 13:31:43 +02:00
Henri Verbeet 6c4c351791 wined3d: Don't require wined3d object parents to be COM objects. 2010-09-01 14:01:02 +02:00
Francois Gouget e237369b09 ddraw: Remove WINAPI on static functions where not needed. 2010-08-25 11:56:15 +02:00
Henri Verbeet cc5271d1b7 wined3d: Rename WINED3DFORMAT to wined3d_format_id. 2010-08-24 12:25:01 +02:00
Henri Verbeet 866099765a ddraw: Attaching an already attached surface is not a FIXME.
According to the tests it should simply fail.
2010-08-23 12:05:08 +02:00
Henri Verbeet 20a42b4c98 ddraw: Add / improve TRACEs. 2010-08-20 13:21:24 +02:00
Henri Verbeet 4378d4b31e ddraw: Add a separate function for surface initialization. 2010-08-20 13:21:24 +02:00
Henri Verbeet c5a14085d4 ddraw: Remove unused / redundant includes. 2010-08-19 11:17:41 +02:00
Henri Verbeet 407f78e9e1 ddraw: Merge texture.c into surface.c. 2010-08-19 11:17:29 +02:00
Henri Verbeet 3eba8b5d22 ddraw: Merge gamma.c into surface.c. 2010-08-19 11:17:15 +02:00
Henri Verbeet 51a315386e ddraw: Use a less offensive handle table implementation for surfaces. 2010-07-30 11:36:03 +02:00
Henri Verbeet ce8f6ecf6e ddraw: Merge the surface thunks into surface.c. 2010-07-20 13:13:04 +02:00
Henri Verbeet 6fb9ee0ee7 ddraw: Merge the ddraw thunks into ddraw.c.
Note how both ddraw 1 and ddraw 7 used the same IDirectDrawImpl_XXX naming
convention.
2010-07-20 13:13:04 +02:00
Henri Verbeet f461b39b76 ddraw: Get rid of the useless "ddraw_owner" fields. 2010-07-19 14:49:07 +02:00
Andrew Nguyen d5c2a358b7 ddraw: Return a failure code in IDirectDrawSurfaceImpl::QueryInterface if IDirect3D7::CreateDevice fails. 2010-07-19 14:41:11 +02:00
Henri Verbeet cf39adbaa2 ddraw: Avoid an integer overflow in IDirectDrawSurfaceImpl_BltFast().
Bug spotted by Iain Arnell, test by Iain Arnell.
2010-06-24 15:11:43 +02:00
Christian Costa e95ffacde0 ddraw: Make SetColorKey handle case where dwColorSpaceHighValue < dwColorSpaceLowValue + tests. 2009-10-15 12:06:22 +02:00
Henri Verbeet 33bfcdd044 ddraw: The ddraw surface is now always the wined3d surface's parent.
This GetParent() trick would now cause infinite recursion.
2009-09-25 15:15:55 +02:00
Henri Verbeet 60e32659a7 wined3d: Rename IWineD3DDevice::SetIndices() to IWineD3DDevice::SetIndexBuffer(). 2009-09-25 15:14:44 +02: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
Stefan Dösinger e1469961d4 wined3d: Test and fix ddraw and d3d9 GetDC differences.
The MSDN is not totally correct: A8R8G8B8 and A1R5G5B5 also allow GetDC. The
main differences that have to be filtered out in d3d9.dll are GetDC on
A8B8G8R8, X8B8G8R8 and P8.
2009-09-08 13:04:52 +02:00
Henri Verbeet ee60e5fd71 ddraw: Remove trailing spaces. 2009-09-01 14:06:03 +02:00
Stefan Dösinger cb1c9dcda9 d3d: Remove the format from index buffers. 2009-04-09 16:28:25 +02:00
Henri Verbeet b09b0fbf95 ddraw: Get rid of ddcomimpl.h. 2009-01-22 12:05:14 +01:00
Henri Verbeet 802f9c7e29 ddraw: Get rid of ICOM_OBJECT. 2009-01-22 12:05:07 +01:00
Henri Verbeet 8c4cc2af46 ddraw: Get rid of ICOM_THIS_FROM. 2009-01-22 12:05:03 +01:00
Henri Verbeet 9a0c885e63 ddraw: Get rid of ICOM_INTERFACE. 2009-01-21 11:17:25 +01:00
Michael Stefaniuc 5ee7a104c9 ddraw: Remove superfluous pointer casts. 2009-01-14 12:21:02 +01:00
Andrew Talbot 1ac07906ae ddraw: Fix double unlock of critical section. 2009-01-10 17:43:10 +01:00