Stefan Dösinger
db68ffcba1
ddraw: Treat D3DTEXTUREMANAGE like TEXTUREMANAGE.
...
Sim City 4 uses this flag. The main problem I noticed was with
WINED3D_MAP_DISCARD handling introduced for surfaces in patches that
aren't yet in the tree, but the difference already matters for older
cards because of video memory accounting.
2013-10-23 17:02:57 +02:00
Henri Verbeet
3fb53e21fb
ddraw: Don't set render target / depth stencil usage on sysmem surfaces.
...
Setting render target usage on a P8 surface for example would fail surface
creation, while such surfaces can't be used for actual rendering anyway. Tests
confirm that surface creation is supposed to succeed for P8 surfaces with both
DDSCAPS_SYSTEMMEMORY and DDSCAPS_3DDEVICE set.
2013-09-17 12:01:21 +02:00
Henri Verbeet
df01e8d6cc
ddraw: Fix render target refcount handling.
...
Similar to AddAttachedSurface() / DeleteAttachedSurface(), we should Release
the interface version that we stored. (And actually store the interface that
we AddRef.)
2013-09-17 12:01:18 +02:00
Stefan Dösinger
f69ba15a92
ddraw/tests: Test blocked texture creation restrictions.
2013-09-06 17:25:08 +02:00
Stefan Dösinger
80638b6d2f
wined3d: Enforce texturing capability format restrictions on resource creation.
2013-09-06 17:25:08 +02:00
Stefan Dösinger
b88daee3bc
ddraw: Create managed pool textures.
...
The surfaces are already in WINED3D_POOL_MANAGED.
2013-09-05 17:56:17 +02:00
Henri Verbeet
6f321ff2f9
ddraw: Don't imply WINED3DUSAGE_RENDERTARGET on primary surfaces.
...
If the application actually wants to do 3D rendering on the primary surface,
it should set DDSCAPS_3DDEVICE as well.
2013-09-05 13:18:23 +02:00
Henri Verbeet
4de77fa23f
wined3d: Allow a custom pitch to be specified in wined3d_surface_set_mem().
2013-06-14 11:46:20 +02:00
Henri Verbeet
86eb211159
ddraw: Rename PixelFormat_DD2WineD3D() to wined3dformat_from_ddrawformat().
...
For consistency with the other D3D dlls.
2013-06-07 11:58:27 +02:00
Henri Verbeet
d6bc4fe71a
wined3d: Allow surface flags to be passed to texture creation functions.
2013-06-06 11:47:19 +02:00
Henri Verbeet
b23739316c
wined3d: Pass a wined3d_resource_desc structure to wined3d_texture_create_cube().
2013-06-05 17:31:39 +02:00
Henri Verbeet
9d4cbd6195
wined3d: Pass a wined3d_resource_desc structure to wined3d_texture_create_2d().
2013-06-05 17:31:39 +02:00
Henri Verbeet
ce912d5149
wined3d: Get rid of the surface_type parameter to wined3d_surface_create().
2013-01-17 12:21:55 +01:00
Henri Verbeet
191db92fd5
ddraw: Move the mipmap desc fixup code to ddraw_surface_create_texture() from device_parent_create_texture_surface().
2012-10-25 11:48:19 +02:00
Henri Verbeet
ddbe791d37
wined3d: Set texture_level in surface_set_texture_target() as well.
2012-10-24 11:24:22 +02:00
Henri Verbeet
9d127a4d36
wined3d: wined3d_surface_set_palette() never fails.
2012-10-09 09:59:38 +02:00
Henri Verbeet
82282db65e
ddraw: Properly release the ddraw reference when the last interface is released in ddraw_surface_release_iface().
2012-10-01 12:11:09 +02:00
Jacek Caban
4551135f7a
ddraw: Use proper helpers for iface calls.
2012-08-27 19:46:03 +02:00
Henri Verbeet
e5bb2e7d8b
ddraw: Create texture surfaces from device_parent_create_texture_surface().
...
Instead of creating them in advance and hoping we can find them back later.
2012-07-13 10:29:35 -05:00
Henri Verbeet
d4fa0d8de2
ddraw: Get rid of some redundant TRACE_ON invocations.
2012-07-13 10:29:25 -05:00
Henri Verbeet
c722f2d31e
ddraw: Merge ddraw_surface_destroy() into ddraw_surface_cleanup().
2012-06-13 21:35:38 +02:00
Henri Verbeet
8cef8b3587
wined3d: Unify the wined3d_mapped_rect and wined3d_mapped_box structures.
2012-04-13 10:48:51 +02:00
Henri Verbeet
daedd0077d
ddraw: Get rid of IDirect3DDeviceImpl.
2012-04-10 16:21:25 +02:00
Henri Verbeet
9d317e632f
ddraw: Properly retrieve an interface pointer in ddraw_surface7_GetPalette().
2012-04-09 12:02:55 +02:00
Henri Verbeet
02b9988f48
ddraw: Simplify updating palette entries in d3d_texture2_Load().
2012-04-09 12:02:51 +02:00
Henri Verbeet
cf30899f1a
ddraw: Version 1 devices are aggregated by the surface that created them.
2012-04-06 20:11:17 +02:00
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
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
Nick Burns
a537fb0a93
ddraw: Fix surface version setting.
2008-12-26 13:42:29 +01:00
Alexandre Julliard
e1ced22db1
ddraw: Convert source files to utf-8.
2008-10-18 19:19:45 +02:00
Andrew Talbot
623ee7775b
ddraw: Sign-compare warning fix.
2008-10-01 09:56:54 -05:00
Stefan Dösinger
58ac095d9d
ddraw: Don't destroy the application's window.
2008-08-26 12:07:40 +02:00
Stefan Dösinger
c1bbab7c54
ddraw: Send the ddraw output to the clipper window, if any.
2008-08-19 12:25:31 +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
Stefan Dösinger
851dd7339e
wined3d: Implement overlay flipping.
2008-08-05 14:09:36 +02:00
Stefan Dösinger
e795d842ec
wined3d: Implement overlay position tracking.
2008-08-05 14:09:36 +02:00
Francois Gouget
42a61d7ed7
Assorted spelling fixes.
2008-05-06 16:10:20 +02:00
Alexander Dorofeyev
d6ecf5d14d
ddraw: Return DDERR_NOCOLORKEY when there is no colorkey.
2008-05-06 11:26:15 +02:00
Austin English
825baa23a2
ddraw: Spelling fixes.
2008-04-03 11:39:45 +02:00
Alexander Dorofeyev
2caa797e76
ddraw: Set surface to NULL on failure in GetAttachedSurface.
2008-04-03 11:30:30 +02:00
Alexander Dorofeyev
4b53dde0f5
ddraw: Make SetPalette fail for non-palettized surfaces.
2008-03-24 20:40:00 +01:00
Günther Brammer
df5116cc7d
ddraw: Return a nullpointer as lpSurface in Lock() if the rect is invalid.
2008-02-25 19:50:30 +01:00
Francois Gouget
4c8e218252
Assorted spelling fixes.
2008-02-15 12:09:24 +01:00
Alexander Dorofeyev
f4337b4714
ddraw: Fix incorrect WARN text.
2007-12-17 12:38:43 +01:00
Stefan Dösinger
c5055fb3eb
ddraw: Cope with Init3D failures.
2007-10-10 11:58:37 +02:00
Stefan Dösinger
d0fdb1ea7e
d3d: Add a test for double surface locking.
2007-08-31 11:25:19 +02:00
Stefan Dösinger
430239b470
ddraw: Some d3d-only code fixes.
...
Vertex declarations are a d3d feature, thus they should be destroyed
before d3d is shut down in wined3d. The surface type should be reset
afterwards to prevent avoid gl surface afterwards and before a new
render target is created.
2007-07-24 13:40:29 +02:00
Stefan Dösinger
5fa4de27bc
ddraw: D3DOP_BRANCHFORWARD includes the current instruction size.
...
Native D3DRM puts a branchforward with offset 0 at the beginning of each
execute buffer. With the old code this used to get stuck in an endless
loop. This patch adds a test that shows that such a branchforward
terminates properly.
2007-07-05 19:52:01 +02:00
Stefan Dösinger
208d38688a
ddraw: Check for incorrect rectangles to DDrawSurface::Blt.
2007-06-22 13:42:30 +02:00
Stefan Dösinger
e019cebd16
ddraw: Add a test for incorrect surface desc sizes for Lock().
2007-06-22 13:42:24 +02:00
Stefan Dösinger
bf23e5f3f7
ddraw: Test for incorrect surface desc sizes in GetSurfaceDesc.
2007-06-20 15:10:58 +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
94127492f2
ddraw: Check the validy of IDirectDrawSurface::BltFast parameters.
2007-05-31 13:07:38 +02:00
Stefan Dösinger
8b6a3610bb
ddraw: Hold the lock in IDirectDrawSurface methods.
2007-05-31 13:07:28 +02:00
Detlef Riekenberg
fb0a9291ea
ddraw: Do not crash when Clipper is NULL.
2007-05-29 11:55:58 +02:00
Stefan Dösinger
5c48d504fc
wined3d: Destroying the resource frees all private data.
...
Also adds a test for ddraw, d3d8 and d3d9.
2007-05-11 11:22:31 +02:00
Stefan Dösinger
a5c484cbf3
ddraw: GetSurfaceDesc returns the surface memory while the surface is locked.
2007-05-11 11:21:44 +02:00
Stefan Dösinger
e7b68eec34
ddraw: Use point filter for blit operations.
...
D3DTEXF_NONE is a special value for mipmapping which disabled
mipmapping, but it is not a valid mag / min filter parameter.
D3DTEXF_POINT is what we want
2007-05-11 11:21:29 +02:00
Stefan Dösinger
1b94a5eefd
ddraw: Fix stupid bug when setting surface client memory.
2007-05-10 11:40:50 +02:00
Stefan Dösinger
bed50115ee
ddraw: More tests and fixes on surface attachments.
2007-05-09 12:07:46 +02:00
Stefan Dösinger
0fb41a8845
wined3d: Make the blit -> flip work for windowed rendering.
2007-05-08 18:28:08 +02:00
Stefan Dösinger
2ecacc619f
ddraw: Fix reported caps on compressed surfaces.
...
Compressed surfaces in ddraw do not have a pitch, instead the full
surface size is reported. Also adds tests for the extact behavior and
surface flags set.
2007-05-07 21:42:33 +02:00
H. Verbeet
7b48db196f
d3d: Fix the surface locking rectangle validation.
2007-05-04 13:41:13 +02:00
Stefan Dösinger
ffae39c3f3
ddraw: Update the wined3d depth stencil on device creation, render.
2007-05-01 11:42:25 +02:00
Stefan Dösinger
7ca369d9b6
ddraw: Store a WineD3DBaseTexture instead of a WineD3DTexture.
2007-05-01 11:42:24 +02:00
Andrew Talbot
0629946e65
ddraw: Exclude unused headers.
2007-05-01 11:42:24 +02:00
Stefan Dösinger
a61e58dbf4
ddraw: Add a test for surface attachments.
2007-04-30 12:22:14 +02:00
Stefan Dösinger
9e3e799ca3
ddraw: Complex surfaces form a tree.
2007-04-30 12:22:06 +02:00
Stefan Dösinger
d30c25be83
ddraw: Do not access the surface connection structure directly in SetPalette.
2007-04-30 12:21:09 +02:00
Stefan Dösinger
88af9702f1
ddraw: Use EnumAttachedSurfaces for SetColorKey.
2007-04-27 11:43:45 +02:00
Stefan Dösinger
725057da47
d3d: Remove dependency on ddraw.h header.
2007-04-16 13:20:15 +02:00
Stefan Dösinger
290f2eb146
wined3d: Add Filtering to IWineD3DSurface::Blt and handle it.
...
This is to allow StretchRect to pass the texture filter to WineD3D.
DirectDraw sets the texture filter to WINED3DTEXF_NONE, simmilar to all
other functions which do not need filtering.
2007-04-07 10:58:10 +02:00
Stefan Dösinger
cd3bc1d17d
ddraw: Test and fix IDirectDrawSurfaceX::GetDDInterface.
2007-02-19 13:09:30 +01:00
Stefan Dösinger
1036ca0df6
ddraw: Creating surfaces with old interfaces doesn't addref.
2007-02-19 13:09:18 +01:00
Stefan Dösinger
ae91cfe380
ddraw: SetClipper refcounting fix.
2007-02-19 13:08:55 +01:00
Stefan Dösinger
8b8e30b1e1
ddraw, wined3d: Color keying tests and fixes.
2007-02-15 11:37:00 +01:00
Markus Amsler
5e0fc62135
d3d: Callback infrastructure for implicit swap chain destruction in IWineD3DDevice.
2006-12-18 12:07:26 +01:00
Stefan Dösinger
2fe8a41cb8
ddraw: Add a TRACE to GetPixelFormat.
2006-12-15 12:18:31 +01:00
Günther Brammer
3c5b9557b5
ddraw: Fix IDirectDrawSurfaceImpl_SetColorKey to also change surface_desc.
2006-12-14 20:32:39 +01:00
Markus Amsler
3fd04308ab
d3d: Callback infrastructure for implicit depth stencil surface destruction in IWineD3DDevice.
2006-12-06 12:39:30 +01:00
Stefan Dösinger
9329efa88e
ddraw: Forward the depth stencil buffer to wined3d.
2006-10-25 20:20:59 +02:00
Stefan Dösinger
2e5628df3f
ddraw: Make the surface list a standard wine list.
2006-10-16 12:06:43 +02:00
H. Verbeet
2465fcb368
ddraw: Win64 printf format warning fixes.
2006-10-11 12:08:28 +02:00