PeterN
4031894aef
Cleanup: Remove svn-style `$Id$` comments. ( #10122 )
2022-11-01 18:24:31 -06:00
Niels Martin Hansen
345dcd3c7b
Add: Show current video driver info in Options window
2022-05-03 21:03:30 +02:00
Michael Lutz
883e21dbb7
Codechange: [OSX] We use OpenGL even if Apple doesn't like it.
2021-06-22 21:09:37 +02:00
Rubidium
357af686dc
Cleanup: use true/false instead of 1/0 where applicable
2021-06-17 16:18:30 +02:00
Rubidium
f904aef176
Cleanup: use nullptr instead of 0 or NULL
2021-06-17 16:18:30 +02:00
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
2021-06-13 12:45:45 +02:00
Michael Lutz
97722931a9
Fix: [OpenGL] Increase timeout when waiting for the GPU to be done with the drawing buffer.
...
The old timeout could be too short if v-sync was on on lower refresh rates.
2021-05-23 12:22:59 +02:00
Michael Lutz
f4d5c8d99e
Fix: [OpenGL] Main loop expects to start with the video buffer unmapped. ( #9100 )
2021-04-25 00:43:38 +02:00
Michael Lutz
d1dd997f07
Change: [Win32] Limit the OpenGL video driver to OpenGL 3.2 or newer on Windows.
2021-04-22 21:04:04 +02:00
Michael Lutz
e53313391a
Fix: [OpenGL] Check maximum supported texture size against screen resolution.
2021-04-21 22:44:59 +02:00
Michael Lutz
433602b072
Fix #9028 : [OpenGL] Clear cursor cache on destroying the OpenGL backend.
2021-04-12 22:40:40 +02:00
Jonathan G Rennison
39b7ef31f8
Fix: Data races on cursor state in OpenGL backends
2021-04-10 18:31:42 +02:00
Jonathan G Rennison
fbd0a2e65a
Fix: Thread unsafe use of sprite cache in OpenGLBackend::DrawMouseCursor
...
See also: #8870
See also: #8977
2021-04-10 18:31:42 +02:00
Milek7
7a886cb4d4
Change: Do not disallow persistent buffer mapping on AMD GPUs, as it is actually faster.
2021-03-25 19:37:24 +00:00
Michael Lutz
df958dc907
Fix f0f96e31: [OpenGL] Broken window resizing due to invalid buffer pitch on texture creation.
2021-03-21 22:26:55 +01:00
frosch
0230624359
Fix f0f96e31: [OpenGL] warning: comparison of integer expressions of different signedness. ( #8881 )
2021-03-21 18:38:51 +01:00
Michael Lutz
f0f96e3103
Fix #8871 : [OpenGL] Initialize all buffers after resize and clear back buffer. ( #8877 )
2021-03-20 19:43:54 +01:00
Michael Lutz
436cdf1fc8
Fix #8825 : [OpenGL] Don't clear cursor cache from the game loop thread.
2021-03-08 21:35:35 +01:00
Patric Stout
e56d2c63c3
Add: [Video] move GameLoop into its own thread
...
This allows drawing to happen while the GameLoop is doing an
iteration too.
Sadly, not much drawing currently can be done while the GameLoop
is running, as for example PollEvent() or UpdateWindows() can
influence the game-state. As such, they first need to acquire a
lock on the game-state before they can be called.
Currently, the main advantage is the time spend in Paint(), which
for non-OpenGL drivers can be a few milliseconds. For OpenGL this
is more like 0.05 milliseconds; in these instances this change
doesn't add any benefits for now.
This is an alternative to the former "draw-thread", which moved
the drawing in a thread for some OSes. It has similar performance
gain as this does, although this implementation allows for more
finer control over what suffers when the GameLoop takes too
long: drawing or the next GameLoop. For now they both suffer
equally.
2021-03-08 19:18:55 +01:00
Michael Lutz
d79398a1d5
Fix #8763 : [OpenGL] Cursor sprite origin can be negative.
2021-02-28 11:12:13 +01:00
Michael Lutz
77854d561b
Fix: [OpenGL] Don't use OpenGL on MESA software renderers.
...
Performance in this case is worse than not using OpenGL, so just let
OTTD fall back to a different video driver.
2021-02-27 19:01:34 +01:00
frosch
dfa141818b
Fix: OpenGL cursor did not consider sprite offsets of cursor sprites.
2021-02-27 14:52:11 +01:00
Michael Lutz
311df31fb1
Codechange: [OpenGL] Load all OpenGL functions dynamically.
2021-02-25 00:34:49 +01:00
Michael Lutz
a0c1a3f736
Codechange: [OpenGL] Simplify loading OpenGL extension functions.
2021-02-25 00:34:49 +01:00
Michael Lutz
e1e8cc3851
Fix #8734 : [OpenGL] Apply palette remap to cursor sprites. ( #8742 )
2021-02-24 22:10:25 +01:00
Michael Lutz
b4a3bc1ffe
Codechange: [OpenGL] Separate context state setup from general init.
2021-02-22 22:16:07 +01:00
Michael Lutz
86c309ea75
Codechange: [OpenGL] Let OpenGL clear the pixel buffer if possible.
2021-02-22 22:16:07 +01:00
Michael Lutz
ae7c63cc35
Codechange: [OpenGL] Use persistently mapped pixel buffers when supported.
2021-02-22 22:16:07 +01:00
Michael Lutz
200be7d20c
Add: [OpenGL] Support for a separate animation buffer that stores the palette values of the screen in addition to the colour buffer.
2021-02-22 22:16:07 +01:00
Michael Lutz
6bcc4884c2
Add: [OpenGL] Accelerated mouse cursor drawing.
2021-02-22 22:16:07 +01:00
Michael Lutz
bcd15b4dd2
Codechange: [OpenGL] Initialize backing store to opaque alpha to allow blending effects.
2021-02-22 22:16:07 +01:00
Michael Lutz
e8fc050b6e
Add: [OpenGL] Support for 8bpp blitters.
2021-02-22 22:16:07 +01:00
Michael Lutz
320072c8dc
Codechange: [OpenGL] Explicitly assign which framebuffer target receives the colour values.
2021-02-22 22:16:07 +01:00
Michael Lutz
821f30f735
Codechange: [OpenGL] Use GLSL version 1.50 if available.
2021-02-22 22:16:07 +01:00
Michael Lutz
90fd8f8cda
Codechange: [OpenGL] Use generic vertex attributes in the shader program.
2021-02-22 22:16:07 +01:00
Michael Lutz
acf59f6b68
Codechange: [OpenGL] Use shaders to display the video buffer on screen.
2021-02-22 22:16:07 +01:00
Michael Lutz
9a069faa01
Codechange: [Win32] Try to get an OpenGL 3.2+ context if possible.
2021-02-22 22:16:07 +01:00
Michael Lutz
a990c497b5
Codechange: [OpenGL] Use a pixel buffer object to store the video buffer.
2021-02-22 22:16:07 +01:00
Michael Lutz
5af0cfd902
Codechange: [OpenGL] Use a vertex array object to store the vertex state for the video buffer.
2021-02-22 22:16:07 +01:00
Michael Lutz
acf2ce35f7
Codechange: [OpenGL] Use a vertex buffer object to store the vertex data for the video buffer.
2021-02-22 22:16:07 +01:00
Michael Lutz
5ad545dcc1
Codechange: [OpenGL] Only update the dirty parts of the video buffer texture.
2021-02-22 22:16:07 +01:00
Michael Lutz
3a77ade6b2
Codechange: [OpenGL] Enable driver debug messages if supported.
2021-02-22 22:16:07 +01:00
Michael Lutz
d7b96a424f
Codechange: [OpenGL] Use new-style extension testing introduced with OpenGL 3.0.
2021-02-22 22:16:07 +01:00
Michael Lutz
ef478ade64
Add: [Win32] Video driver that uses OpenGL to transfer the video buffer to the screen.
2021-02-22 22:16:07 +01:00