Commit Graph

338 Commits

Author SHA1 Message Date
Henri Verbeet 4f91eb3fe1 ddraw: Keep track of the ddraw version used to create a device.
This also obsoletes the "from_surface" device field.
2012-04-04 17:22:19 +02:00
Henri Verbeet ecd1c78c48 ddraw: Surface versions before 7 return E_INVALIDARG on failure in QueryInterface(). 2012-04-03 12:00:13 +02:00
Henri Verbeet 75aa0b38f7 ddraw: The various D3D device interfaces can't be queried from version 7 surfaces. 2012-04-03 12:00:10 +02:00
Henri Verbeet 814fd3b39e ddraw: The texture interface shares its refcount with the surface interface version used to create the surface.
This probably implies that on native the texture interface is part of a
separate object that's aggregated by the surface.
2012-04-02 12:39:28 +02:00
Henri Verbeet 7dd4f439e3 ddraw: The texture interfaces can't be queried from version 7 surfaces. 2012-04-02 12:39:22 +02:00
Henri Verbeet 8481625fa4 ddraw: Explicitly check for the IDirectDrawColorControl interface in ddraw_surface7_QueryInterface(). 2012-04-02 12:39:19 +02:00
Henri Verbeet f7719a89ad ddraw: Querying IUnknown for a surface should return the IDirectDrawSurface interface. 2012-03-30 10:43:49 +02:00
Henri Verbeet a623075612 ddraw: Replace a ERR in ddraw_surface7_QueryInterface() with a WARN. 2012-03-30 10:43:44 +02:00
Henri Verbeet f3d1d4790c ddraw: Get rid of a couple of redundant else-statements. 2012-03-30 10:43:33 +02:00
Henri Verbeet 6f35ec6092 ddraw: Make ddraw_surface_wined3d_parent_ops static. 2012-03-26 18:15:07 +02:00
Henri Verbeet d0a37cdeb5 ddraw: Get rid of IDirectDrawPaletteImpl. 2012-03-13 10:26:54 +01:00
Henri Verbeet 5f43cd2631 ddraw: Get rid of IDirectDrawSurfaceImpl. 2012-03-12 10:44:01 +01:00
Henri Verbeet 1cee1891fd ddraw: Get rid of IDirectDrawImpl. 2012-03-09 11:32:35 +01:00
Henri Verbeet f20e07b77b ddraw: Always pin surfaces. 2012-02-22 11:26:32 +01:00
Stefan Dösinger 551c732d74 ddraw: Properly set the color key in texture::load. 2012-01-31 17:49:15 +01:00
Henri Verbeet 0d8e6719d5 ddraw: AddAttachedSurface() just references whatever we pass it. 2012-01-31 13:46:30 +01:00
Alexandre Julliard 5f42f7d4fa ddraw: AddRef the correct interface pointer in AddAttachedSurface. 2012-01-25 21:38:32 +01:00
Matteo Bruni e51d3f6de6 ddraw: Accept pointers to wrong IDirectDrawSurface versions. 2012-01-24 11:56:06 +01:00
Henri Verbeet 67d4be0347 ddraw: Just pin all version 1 surfaces. 2012-01-19 11:56:35 +01:00
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