1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00

18 Commits

Author SHA1 Message Date
narzoul
9b24a9b306 Removed the GetDDInterface override
Fixes a crash in UEFA Challenge (issue #50).
2019-08-11 12:48:02 +02:00
narzoul
e83371afed Moved GDI synchronization to UMD level
Fixes deadlock when starting Rayman 2 (issue #30).
2019-08-03 12:09:12 +02:00
narzoul
c526cc2506 Prefer locks and blits in system memory 2019-08-01 16:00:21 +02:00
narzoul
063cefb46e Simplified Surface implementation 2019-08-01 16:00:19 +02:00
narzoul
d817c4bfb3 Simplified 8/16 bit display mode emulation 2019-08-01 16:00:16 +02:00
narzoul
26f8742dc2 Reverted forcing surfaces to system memory 2019-08-01 16:00:10 +02:00
narzoul
291a9c2f9a Fixed various multi-monitor display issues 2018-12-31 20:32:06 +01:00
narzoul
727be63db1 Implement GDI system palette emulation 2018-12-31 20:31:58 +01:00
narzoul
60c3c4f153 Mitigate performance issues caused by slow surface interface release
Releasing the last reference to a surface interface has a significant
performance impact. Mitigating the issue by eliminating some frequent
but unnecessary QueryInterface calls.

Fixes most of the performance drop reported in issue #24.
2017-11-18 22:43:55 +01:00
narzoul
640f746633 Implement 8/16 bit display mode emulation
8/16 bit display mode emulation is now implemented internally instead of
relying on the builtin Windows shims, as those are sometimes unreliable
(not triggering for some games on some systems when they should).

External DirectDraw hooks (such as the DWM8And16BitMitigation shim)
are disabled to avoid interference.

Fixes issues reported in #8, #9, #15.
2017-05-28 15:40:33 +02:00
narzoul
347713cdce Create off-screen plain surfaces in system memory
Fixes performance issues with Desperados mentioned in issue #5
(possibly #8 as well).
2016-12-22 20:49:12 +01:00
narzoul
26995d6108 Create palettized surfaces in system memory 2016-12-22 20:49:00 +01:00
narzoul
e8f987eb05 Create repository surfaces on the appropriate device
This change assigns a different DirectDraw repository object for each original
DirectDraw object that requires temporary surfaces, ensuring that video memory
surfaces are created on the appropriate device on a multi-GPU system.
2016-10-31 13:48:05 +01:00
narzoul
7220b80999 Tagged all DirectDraw objects for tracking lifetime 2016-10-31 13:47:59 +01:00
narzoul
aabe85db65 Removed CompatVtable dependency on derived interface 2016-10-23 15:28:27 +02:00
narzoul
30bf0435f8 Fixed GetDDInterface implementation 2016-10-23 15:28:20 +02:00
narzoul
d163787437 Allow PrimarySurface to wrap different surface implementations 2016-10-23 15:28:14 +02:00
narzoul
19cce6b9d6 Preparation for splitting the DirectDrawSurface wrapper into layers 2016-10-23 15:27:56 +02:00