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

10 Commits

Author SHA1 Message Date
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
8ab8058ceb Fix reported memory caps of primary surface
Changed primary surface caps to report video memory in case the surface
was only forced into system memory by DDrawCompat.

Fixes startup issues in C&C 95 and Red Alert, reported in issue #3.
2017-08-06 21:42:24 +02:00
narzoul
947bb41bf3 Emulate flip when the primary surface is requested in system memory
When the primary surface chain is requested to be created in system memory,
flip should be emulated (copy from back buffer to front buffer) to be
consistent with legacy DirectDraw behavior.

Fixes flashing graphical artifacts in Carmageddon (Win95 version) menus
when exiting from a race, mentioned in issue #3.
2017-07-25 21:27:40 +02:00
narzoul
6a2255160f Add extra rows to system memory primary surface buffers
Fixes a memory corruption issue in Diablo 1, reported in issue #3.
2017-07-15 12:47:08 +02: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
5b5863b028 Fixed various alt-tabbing issues 2016-12-20 18:52:50 +01:00
narzoul
1d14b606c2 Implemented GetGDISurface and FlipToGDISurface 2016-11-05 11:45:55 +01:00
narzoul
aabe85db65 Removed CompatVtable dependency on derived interface 2016-10-23 15:28:27 +02:00
narzoul
d163787437 Allow PrimarySurface to wrap different surface implementations 2016-10-23 15:28:14 +02:00
narzoul
0dbd210649 Moved CompatPrimarySurface implementation to separate layer 2016-10-23 15:28:02 +02:00