aboutsummaryrefslogtreecommitdiff
path: root/backends/graphics/opengl/opengl-graphics.cpp
AgeCommit message (Collapse)Author
2017-05-08OPENGL: Don't update the cursor's texture when the cursor is invisibleBastien Bouclet
Updating the cursor's texture is not necessary if it is not going to be drawn. Fixes glDrawArrays sometimes failing due to using a framebuffer with an incomplete color attachment. In SCI32 games, the framebuffer is incomplete because the engine does not define pixel data for the cursor.
2017-04-24SDL: Improve debug and warning messages when saving screenshotsThierry Crozat
In particular this adds a warning when failing to save a screenshot in OpenGL mode (there was already one in SurfaceSDL mode).
2016-10-29OPENGL: Remove hack to avoid issues with OSD messages from other threadsThierry Crozat
2016-10-13OPENGL: Add support for filtering featureThierry Crozat
This replaces the two graphics modes "OpenGL (No filtering)" and "OpenGL". Now there is a single "OpenGL" mode and filtering is controlled by the kFeatureFilteringMode.
2016-09-18OPENGL: Make sure the cloud icon is cleared immediatly after it is hiddenBastien Bouclet
2016-09-18OPENGL: Remove multithread support from displayActivityIconOnOSDBastien Bouclet
It is no longer being called by another thread.
2016-09-13OPENGL: Fix dereferencing null pointer in OpenGLGraphicsManagerThierry Crozat
This fixes a crash when calling displayActivityIconOnOSD with a NULL icon, which is used to remove the current activity icon.
2016-09-13SDL: Switch the OpenGL renderer to use small textures to draw the OSDBastien Bouclet
2016-09-05OPENGL: Implement getOSDFormat and copyRectToOSDThierry Crozat
2016-09-05OPENGL: Add missing USE_OSD defined checks around OSD codeThierry Crozat
2016-08-24GUI: Add getOSDFormat() and make OSD 32 bppAlexander Tkachev
2016-08-24GUI: Add clearOSD() methodAlexander Tkachev
So one can erase everything from OSD and then blit something on it.
2016-08-24GUI: Add copyRectToOSD()Alexander Tkachev
I was lazy to implement that in OpenGLGraphicsManager and I'm not sure it's implemented correctly in SurfaceSdlGraphicsManager, but it works for me.
2016-03-16OPENGL: Make shader pipelines use fixed shaders.Johannes Schickel
2016-03-16OPENGL: Implement CLUT8 look up as Pipeline.Johannes Schickel
2016-03-16OPENGL: Move pipeline code to pipelines/.Johannes Schickel
2016-03-16OPENGL: Do not allow direct access to Context::activePipeline.Johannes Schickel
2016-03-16OPENGL: Implement texture drawing in Pipeline instead of Surface.Johannes Schickel
2016-03-16OPENGL: Make shader/framebuffer part of pipeline state.Johannes Schickel
2016-03-16OPENGL: Don't prefix maxTextureSize variable for consistency.Johannes Schickel
2016-03-16OPENGL: Introduce abstraction for framebuffer.Johannes Schickel
This allows us to use various framebuffer settings easily. Now the GPU accelerated CLUT8 surface implementation does not need to query former framebuffer state anymore.
2016-03-16OPENGL: Introduce ShaderManager to handle builtin shaders.Johannes Schickel
2016-03-16OPENGL: Introduce pipeline abstraction to cleanup code.Johannes Schickel
2016-03-16OPENGL: Support GLSL based CLUT8 look up for GLES2+.Johannes Schickel
2016-03-16OPENGL: Simplify shader support checks.Johannes Schickel
2016-03-16OPENGL: Handle GLES2 and GL shaders uniformly.Johannes Schickel
GLES2 requires precision qualifiers to be set and allows use of precision qualifiers. For GLES2 we define a default precision now. Since precision qualifiers are not supported in the GLSL version we use for GL, we introduce compatibility #defines.
2016-03-16OPENGL: Accelerate palette lookups with shaders.Johannes Schickel
This currently is limited to GL contexts.
2016-03-16OPENGL: Introduce simple abstraction for surfaces.Johannes Schickel
This is basically an interface extracted from Texture without any knowledge about any actual implementation, except for copyRectToTexture, fill, and dirty rect handling. These are convenient helpers.
2016-03-16OPENGL: Move color key handling for CLUT8 to TextureCLUT8.Johannes Schickel
2016-03-16OPENGL: Fix texture format for BGR565.Johannes Schickel
2016-03-16OPENGL: Move max texture size information to Context.Johannes Schickel
2016-03-16OPENGL: Unify shader implementation for GL and GLES2.Johannes Schickel
2016-03-16OPENGL: (Partly) move context specific handling to Context.Johannes Schickel
This does not include (most) shader setup, and projection matrices yet.
2016-03-16OPENGL: Make Context::reset explicitly reset state.Johannes Schickel
2016-03-16OPENGL: Add support for shaders with GL contexts.Johannes Schickel
2016-03-16OPENGL: Reset context description on context destroy.Johannes Schickel
2016-03-16OPENGL: Support GLES2 contexts.Johannes Schickel
2016-03-16OPENGL: Typo.Johannes Schickel
2016-03-16OPENGL: Simplify orthogonal projection setup.Johannes Schickel
2016-03-16OPENGL: Simplify context type setting.Johannes Schickel
2016-03-16OPENGL: Support RGB555 for OpenGL ES output.Johannes Schickel
This mode should *not* be used by any new engines/code. If someone is going to use it and says it works with the OpenGL output, please make them wear a red uniform and beam them onto a remote planet.
2016-03-16OPENGL: Allow runtime specification of OpenGL mode.Johannes Schickel
Formerly, we required that the OpenGL mode was fixed at compile time. Now we allow the code to work with whatever it is given at runtime. It is still possible to force a context type on compile time.
2016-03-16OPENGL: Remove support for ARGB8888.Johannes Schickel
This used to be used by Sword25. Since it is not supported by GLES and no engine code uses it we drop support. Hopefully, this helps people to realize they should not use that format in their engine.
2016-03-16OPENGL: Rename GLCALL to GL_CALL.Johannes Schickel
2016-03-16OPENGL: Resolve OpenGL functions on run-time.Johannes Schickel
Formerly we relied on static linkage. However, in the presense of modern OpenGL (ES) implementations it is not easily identifable which library to link against. For example, on Linux amd64 with nVidia drivers and SDL2 setup to create a GLES 1.1 context one would need to link against libGL.so. However, traditionally GLES 1.1 required to link against libGLESv1_CM.so. To prevent a huge mess we simply resolve the OpenGL functions on run-time now and stop linking against a static library (in most cases). GLES support needs to be enabled manually on configure time for now. Tizen changes have NOT been tested.
2016-03-16OPENGL: Define GLCALL in opengl-sys.h.Johannes Schickel
debug.h is now always included and all calls should be made through GLCALL.
2016-03-16OPENGL: Refactor GL extension handling slightly.Johannes Schickel
2015-12-14OPENGL: Smooth mouse experience when black bars are visible.Johannes Schickel
This gets rid of the feeling of the mouse sticking to black borders by using the full output resolution as area for tracking game mouse movement. The same behavior is present in plain SDL output with SDL2.
2015-12-13OPENGL: Limit scissor override to invisible overlay.Johannes Schickel
This fixes some corner cases which caused black bars to appear for a few screen updates when the overlay is visible.
2015-12-12OPENGL: Implement black borders using scissor test.Johannes Schickel