Michael Lutz
7f55f0a264
Codechange: [OSX] Add support for (un)locking the video buffer.
2021-02-22 22:16:07 +01:00
Michael Lutz
2f25e9bdf8
Codechange: [OSX] Separate video driver into a base and a Quartz implementation.
2021-02-22 22:16:07 +01:00
Michael Lutz
421b599541
Codechange: [SDL2] Split driver in base-part and default backend
2021-02-22 22:16:07 +01:00
Patric Stout
a303940372
Feature: [SDL2] OpenGL support
2021-02-22 22:16:07 +01:00
Michael Lutz
a77b202767
Codechange: [SDL] Move dirty_rect to class scope.
2021-02-22 22:16:07 +01:00
Patric Stout
e75858ce5e
Codechange: [SDL2] Allow several places to hook into the SDL driver
...
This allows future subdrivers to use these to manage their
own flow.
2021-02-22 22:16:07 +01:00
Patric Stout
101e394475
Codechange: [SDL2] Move functions and variables to class-scope
...
This allows future subdrivers to override them.
2021-02-22 22:16:07 +01:00
Patric Stout
0d58bc9384
Codechange: [SDL2] Move SDLSurface code to its own function
...
This increases readability, and allow future subdrivers to not
use SDLSurface to draw.
2021-02-22 22:16:07 +01:00
Patric Stout
6098811b49
Codechange: [SDL2] Split Start() in a few more functions
...
This makes it a bit easier to follow what is going on, and
allow future subdrivers to hook into a few of these functions.
Reworked the code slighly while at it, to return early where
possible.
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
94d8acb7d0
Add: A 32 bpp blitter that uses the animation buffer from the video backend to speed up palette animation.
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
01ef44fa4f
Codechange: Allow blitter factories to decide at runtime if the blitter is usable.
2021-02-22 22:16:07 +01:00
Michael Lutz
d62e302768
Change: [Win32] Prioritize the OpenGL video driver over the GDI one.
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
d4dbb3f46e
Fix: Don't trash video buffer alpha in SSE3/4 blitters.
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
1e1a9f3999
Add: A simple, templated cache map that uses a least recently used eviction strategy.
2021-02-22 22:16:07 +01:00
Michael Lutz
3e49aff35c
Codechange: Allow video drivers to handle the cursor themselves.
2021-02-22 22:16:07 +01:00
Michael Lutz
6776229047
Codechange: Make the simple Malloc sprite allocator globally usable.
2021-02-22 22:16:07 +01:00
Michael Lutz
70aa3b4011
Codechange: Give sprite encoders a hint which colour components of a sprite are filled with useful information.
2021-02-22 22:16:07 +01:00
Michael Lutz
e7e5316340
Add: Allow sprite encoders (blitters) to specify an alignment for sprite width and height.
2021-02-22 22:16:07 +01:00
Michael Lutz
02e8741457
Codechange: Allow for using a sprite encoder that is not the currently active blitter when loading a sprite.
2021-02-22 22:16:07 +01:00
Michael Lutz
f94b2e73e1
Codechange: [Win32] Use an OpenGL core context instead of a compatibility one.
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
b181859629
Change: [Win32] Disable VSync for OpenGL by default.
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
8706c36fc0
Codechange: [Win32] Move remaing global _wnd variables into the video driver.
2021-02-22 22:16:07 +01:00
Michael Lutz
d6b6775888
Change: Lock the video buffer when drawing inside the game loop to properly account for threaded drawing.
2021-02-22 22:16:07 +01:00
Michael Lutz
73ed748deb
Codechange: [Win32] Move the global video buffer pointer into the driver class.
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
Michael Lutz
af4d32357c
Codechange: [Win32] Move common initialization and finalization to the video driver base class.
2021-02-22 22:16:07 +01:00
Michael Lutz
78b8fc3e4f
Codechange: [Win32] Move GDI-specific variables and related functions into the GDI video driver class.
2021-02-22 22:16:07 +01:00
Michael Lutz
8b90d4abe0
Codechange: [Win32] Move GDI specific drawing code into the GDI video driver class.
2021-02-22 22:16:07 +01:00
Michael Lutz
59e0d9618b
Codechange: [Win32] Split the video driver into a base class and a GDI backend class.
2021-02-22 22:16:07 +01:00
Patric Stout
78d96dad2a
Fix #6319 : [Win32] don't use clipping; draw whole screen every frame ( #8726 )
...
When we clip the region that is only been redrawn, something
weird happens on Windows. When pushing 60 frames per second on a
60Hz monitor, it appears that the clipped region is often shown
of another frame, instead of the current.
Examples of this are:
- pause the game, move your mouse to the left, and at the right
speed it totally disappears.
- fast aircrafts seem to be in several places at once, weirdly
lagging behind.
- in title screen, moving your mouse gives you the idea it is
jumping places, instead of smooth movements.
In the end, if you do nothing, everything is correct, so it is
eventually consistent. Just when we are firing many BitBlt in
a clipped region, the in-between is not.
What goes wrong exactly, I honestly do not know. On every frame
that we push to the DC is a mouse painted, but visually it
sometimes appears like it is not. Recording with external software
shows it really is there.
It is also not our eyes playing tricks on us, as the first example
makes it really clear the mouse pointer really is not painted.
And to be clear, with the mouse this is easiest reproduceable,
as high-speed objects are influences by this most. But this happens
for all movement that redraws small regions.
Either way, not using clipped regions resolves the issue completely,
and there appears to be little to no penalty (I failed to measure
any impact of drawing the full screen). So better have a good game
than fast code, I guess?
2021-02-22 21:17:55 +01:00
translators
c136dd2b32
Update: Translations from eints
...
english (us): 78 changes by 2TallTyler
polish: 1 change by yazalo
2021-02-22 19:01:17 +00:00
Charles Pigott
6af49b7885
Fix #8724 : Got wrong DepotID/StationID for airports, causing crash
2021-02-22 14:20:21 +00:00
Charles Pigott
80fb1c74f0
Change: Make pathfinder account for maximum order speed, if set
2021-02-22 00:25:47 +00:00