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

41 Commits

Author SHA1 Message Date
narzoul
d6f07bac76 Added DisplayAspectRatio setting 2023-11-05 14:21:19 +01:00
narzoul
97197dde6a Removed dependency on common config header 2023-11-05 14:21:18 +01:00
narzoul
19899f81c9 Fixed a crash in IAT hooking when encountering imports by ordinals
See issue #149.
2022-10-05 19:38:09 +02:00
narzoul
524f708a7f Handle display scaling while primary surface is lost 2022-09-27 21:45:18 +02:00
narzoul
5ce5ea0668 Handle DisplayResolution scaling in windowed mode 2022-09-27 21:45:14 +02:00
narzoul
31444c364a Support gamma ramps in borderless fullscreen mode 2022-09-27 21:45:06 +02:00
narzoul
80863f77a7 Updated presentation logic 2022-09-27 21:45:05 +02:00
narzoul
55eab96f78 Added FullscreenMode setting 2022-09-27 21:45:05 +02:00
narzoul
fb9f28456e Added ForceD3D9On12 setting 2022-09-27 21:45:05 +02:00
narzoul
664c573d91 Fixed performance issues caused by D3DKMTWaitForVerticalBlankEvent
See issue #104 and #120.
2022-09-27 21:44:58 +02:00
narzoul
67f38479b7 Count non-local vidmem as local up to the 1GB limit
Compensates for DVMT not reporting sufficient local video memory
for surface allocation on integrated Intel GPUs.
2022-09-27 21:44:58 +02:00
narzoul
ccc23c75b9 Emulate hardware cursor in scaled fullscreen mode 2022-09-27 21:44:53 +02:00
narzoul
647a4bfcff Added DisplayResolution setting 2022-09-27 21:44:53 +02:00
narzoul
62983b19fe Create helper surfaces via DirectDraw runtime 2022-09-27 21:44:53 +02:00
narzoul
359256660e Fixed flickering mouse cursor in Icewind Dale 2 2021-05-15 19:25:33 +02:00
narzoul
148d7287e8 Fixed incompatibility with Steam overlay
See issue #68.
2021-04-02 18:04:00 +02:00
narzoul
71c67fffd4 Reworked vtable hooking 2021-03-16 14:13:20 +01:00
narzoul
35e66bd3cf Leave cleanup to process termination 2021-03-01 22:59:07 +01:00
narzoul
0d91170fb5 Use _beginthreadex instead of CreateThread 2021-03-01 22:02:31 +01:00
narzoul
799e9a95ae Removed dependency on D3DKMTPresent
Fixes presentation issues when Hardware Accelerated GPU Scheduling is enabled
(issue #73).
2020-07-13 23:44:05 +02:00
narzoul
9de2102909 Wait for vertical blank during gamma ramp changes
Fixes fade effects and skipped credits/ending slides in Arcanum (issue #63)
2020-04-23 20:22:00 +02:00
narzoul
e78d3f2b69 Moved WIN32_LEAN_AND_MEAN macro to compiler switches 2020-02-01 14:12:01 +01:00
narzoul
c7b94700d3 Use IAT hooks for D3DKMT* functions
Potential fix for issue #55.
2019-08-28 21:04:28 +02:00
narzoul
55e08f62d4 Avoid initial lock surface copy for unmodified surfaces 2019-08-19 22:42:48 +02:00
narzoul
9b24a9b306 Removed the GetDDInterface override
Fixes a crash in UEFA Challenge (issue #50).
2019-08-11 12:48:02 +02:00
narzoul
7068d282ff Improved palette handling
Fixes windowed-mode palette issues in SimCopter (issue #46)
2019-08-03 12:09:19 +02:00
narzoul
b6f6f2acf0 Limit maximum video memory
Fixes blurry textures in Rayman 2 and crash in Settlers 4
2019-08-03 12:09:17 +02:00
narzoul
07de716af9 Reworked oversized surface support 2019-08-01 16:00:18 +02:00
narzoul
587af2c855 Fixed incorrect DC used for opening GDI adapter 2018-12-31 20:32:09 +01: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
c53ffab664 Indented function logging 2018-12-08 21:57:14 +01:00
narzoul
58aba66ca2 Hook all GDI threads 2018-12-08 21:57:13 +01:00
narzoul
537ef9c595 Improved presentation scheduling
Fixes cursor flickering issues in Siege of Avalon (issue #34)
and multimon flip issues on Windows 8.1 (issue #28).
2018-12-08 21:57:09 +01:00
narzoul
e69b5e312c Moved common macros to compiler options 2018-12-08 21:53:41 +01:00
narzoul
785663700d Separate GDI and DirectDraw surfaces 2018-12-08 21:53:40 +01:00
narzoul
335d093cb9 Fixed palette issues with GetDC on primary surface 2018-03-12 21:02:28 +01:00
narzoul
5c91706b03 Fixed black screen issue with Windows 10 Creators Update
Also added v-sync to direct primary surface updates (i.e. those that are
not using a back buffer and flip).

Fixes issues #3 and #15.
2017-06-05 16:35:32 +02:00
narzoul
8818d5b136 Fixed improper linking to functions not available in Windows Vista 2016-12-23 19:53:36 +01:00
narzoul
5b5863b028 Fixed various alt-tabbing issues 2016-12-20 18:52:50 +01:00
narzoul
d898961a7e Restore legacy double/triple buffered v-sync behavior
On recent drivers, double buffered DirectDraw flips no longer wait for the
vertical sync before returning and instead just insert the flip into the
flip queue for later execution. This effectively results in triple buffered
behavior (in the render-ahead sense) and causes up to an extra frame of
latency even if the flip queue size is set to 1.

To restore the legacy double buffered behavior, each flip waits for the
presented frame to leave the flip queue before returning.

To restore the legacy triple buffered behavior, the flip queue size is
forced to 1. This causes the flip to wait if the previous flip is still
pending.
2016-12-04 15:43:05 +01:00