summaryrefslogtreecommitdiff
path: root/src/video/opengl.cpp
AgeCommit message (Collapse)Author
2021-06-13Codechange: convert printf DEBUG statements to fmt Debug statementsrubidium42
2021-05-23Fix: [OpenGL] Increase timeout when waiting for the GPU to be done with the ↵Michael Lutz
drawing buffer. The old timeout could be too short if v-sync was on on lower refresh rates.
2021-04-25Fix: [OpenGL] Main loop expects to start with the video buffer unmapped. (#9100)Michael Lutz
2021-04-22Change: [Win32] Limit the OpenGL video driver to OpenGL 3.2 or newer on Windows.Michael Lutz
2021-04-21Fix: [OpenGL] Check maximum supported texture size against screen resolution.Michael Lutz
2021-04-12Fix #9028: [OpenGL] Clear cursor cache on destroying the OpenGL backend.Michael Lutz
2021-04-10Fix: Data races on cursor state in OpenGL backendsJonathan G Rennison
2021-04-10Fix: Thread unsafe use of sprite cache in OpenGLBackend::DrawMouseCursorJonathan G Rennison
See also: #8870 See also: #8977
2021-03-25Change: Do not disallow persistent buffer mapping on AMD GPUs, as it is ↵Milek7
actually faster.
2021-03-21Fix f0f96e31: [OpenGL] Broken window resizing due to invalid buffer pitch on ↵Michael Lutz
texture creation.
2021-03-21Fix f0f96e31: [OpenGL] warning: comparison of integer expressions of ↵frosch
different signedness. (#8881)
2021-03-20Fix #8871: [OpenGL] Initialize all buffers after resize and clear back ↵Michael Lutz
buffer. (#8877)
2021-03-08Fix #8825: [OpenGL] Don't clear cursor cache from the game loop thread.Michael Lutz
2021-03-08Add: [Video] move GameLoop into its own threadPatric Stout
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-02-28Fix #8763: [OpenGL] Cursor sprite origin can be negative.Michael Lutz
2021-02-27Fix: [OpenGL] Don't use OpenGL on MESA software renderers.Michael Lutz
Performance in this case is worse than not using OpenGL, so just let OTTD fall back to a different video driver.
2021-02-27Fix: OpenGL cursor did not consider sprite offsets of cursor sprites.frosch
2021-02-25Codechange: [OpenGL] Load all OpenGL functions dynamically.Michael Lutz
2021-02-25Codechange: [OpenGL] Simplify loading OpenGL extension functions.Michael Lutz
2021-02-24Fix #8734: [OpenGL] Apply palette remap to cursor sprites. (#8742)Michael Lutz
2021-02-22Codechange: [OpenGL] Separate context state setup from general init.Michael Lutz
2021-02-22Codechange: [OpenGL] Let OpenGL clear the pixel buffer if possible.Michael Lutz
2021-02-22Codechange: [OpenGL] Use persistently mapped pixel buffers when supported.Michael Lutz
2021-02-22Add: [OpenGL] Support for a separate animation buffer that stores the ↵Michael Lutz
palette values of the screen in addition to the colour buffer.
2021-02-22Add: [OpenGL] Accelerated mouse cursor drawing.Michael Lutz
2021-02-22Codechange: [OpenGL] Initialize backing store to opaque alpha to allow ↵Michael Lutz
blending effects.
2021-02-22Add: [OpenGL] Support for 8bpp blitters.Michael Lutz
2021-02-22Codechange: [OpenGL] Explicitly assign which framebuffer target receives the ↵Michael Lutz
colour values.
2021-02-22Codechange: [OpenGL] Use GLSL version 1.50 if available.Michael Lutz
2021-02-22Codechange: [OpenGL] Use generic vertex attributes in the shader program.Michael Lutz
2021-02-22Codechange: [OpenGL] Use shaders to display the video buffer on screen.Michael Lutz
2021-02-22Codechange: [Win32] Try to get an OpenGL 3.2+ context if possible.Michael Lutz
2021-02-22Codechange: [OpenGL] Use a pixel buffer object to store the video buffer.Michael Lutz
2021-02-22Codechange: [OpenGL] Use a vertex array object to store the vertex state for ↵Michael Lutz
the video buffer.
2021-02-22Codechange: [OpenGL] Use a vertex buffer object to store the vertex data for ↵Michael Lutz
the video buffer.
2021-02-22Codechange: [OpenGL] Only update the dirty parts of the video buffer texture.Michael Lutz
2021-02-22Codechange: [OpenGL] Enable driver debug messages if supported.Michael Lutz
2021-02-22Codechange: [OpenGL] Use new-style extension testing introduced with OpenGL 3.0.Michael Lutz
2021-02-22Add: [Win32] Video driver that uses OpenGL to transfer the video buffer to ↵Michael Lutz
the screen.