citra/src/video_core/renderer_opengl
GPUCode b5d6f645bd
Prepare frontend for multiple graphics APIs (#6347)
* externals: Update dynarmic

* settings: Introduce GraphicsAPI enum

* For now it's OpenGL only but will be expanded upon later

* citra_qt: Introduce backend agnostic context management

* Mostly a direct port from yuzu

* core: Simplify context acquire

* settings: Add option to create debug contexts

* renderer_opengl: Abstract initialization to Driver

* This commit also updates glad and adds some useful extensions which we will use in part 2

* Rasterizer construction is moved to the specific renderer instead of RendererBase.
  Software rendering has been disable to achieve this but will be brought back in the next commit.

* video_core: Remove Init/Shutdown methods from renderer

* The constructor and destructor can do the same job

* In addition move opengl function loading to Qt since SDL already does this. Also remove ErrorVideoCore which is never reached

* citra_qt: Decouple software renderer from opengl part 1

* citra: Decouple software renderer from opengl part 2

* android: Decouple software renderer from opengl part 3

* swrasterizer: Decouple software renderer from opengl part 4

* This commit simply enforces the renderer naming conventions in the software renderer

* video_core: Move RendererBase to VideoCore

* video_core: De-globalize screenshot state

* video_core: Pass system to the renderers

* video_core: Commonize shader uniform data

* video_core: Abstract backend agnostic rasterizer operations

* bootmanager: Remove references to OpenGL for macOS

OpenGL macOS headers definitions clash heavily with each other

* citra_qt: Proper title for api settings

* video_core: Reduce boost usage

* bootmanager: Fix hide mouse option

Remove event handlers from RenderWidget for events that are
already handled by the parent GRenderWindow.
Also enable mouse tracking on the RenderWidget.

* android: Remove software from graphics api list

* code: Address review comments

* citra: Port per-game settings read

* Having to update the default value for all backends is a pain so lets centralize it

* android: Rename to OpenGLES

---------

Co-authored-by: MerryMage <MerryMage@users.noreply.github.com>
Co-authored-by: Vitor Kiguchi <vitor-kiguchi@hotmail.com>
2023-03-27 14:29:17 +03:00
..
texture_filters Add nearest neighbor texture filter (#6189) 2022-11-16 18:55:14 +01:00
depth_to_color.frag video_core: implement GLES depth/stencil downloads 2021-10-02 14:19:27 +05:30
depth_to_color.vert video_core: implement GLES depth/stencil downloads 2021-10-02 14:19:27 +05:30
ds_to_color.frag video_core: implement GLES depth/stencil downloads 2021-10-02 14:19:27 +05:30
frame_dumper_opengl.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
frame_dumper_opengl.h video_core, core: Move pixel download to its own thread 2020-02-27 16:55:08 +08:00
gl_driver.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
gl_driver.h Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
gl_format_reinterpreter.cpp video_core: Run clang format 2022-08-22 08:00:30 +03:00
gl_format_reinterpreter.h renderer_opengl: Apply styling suggestions 2022-08-22 13:13:41 +03:00
gl_rasterizer.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
gl_rasterizer.h Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
gl_resource_manager.cpp code: Cleanup and warning fixes from the Vulkan PR (#6163) 2022-11-04 23:32:57 +01:00
gl_resource_manager.h video_core: Run clang format 2022-08-22 08:00:30 +03:00
gl_shader_decompiler.cpp CI: fix recent build issues (#6148) 2022-10-05 18:43:07 +02:00
gl_shader_decompiler.h video_core: Add missing header guards 2020-04-18 22:06:37 -04:00
gl_shader_disk_cache.cpp gl_shader_disk_cache: Avoid reopening files every time a shader need to be written. (#6344) 2023-03-25 23:35:17 +02:00
gl_shader_disk_cache.h gl_shader_disk_cache: Avoid reopening files every time a shader need to be written. (#6344) 2023-03-25 23:35:17 +02:00
gl_shader_gen.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
gl_shader_gen.h renderer_opengl: Header cleanup 2022-08-21 02:22:57 +03:00
gl_shader_manager.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
gl_shader_manager.h Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
gl_shader_util.cpp gl_shader_util: Downgrade GLSL to 430 2022-08-29 21:44:07 +03:00
gl_shader_util.h gl_shader_util: Specify default precision for uimage2D 2021-10-02 16:38:18 +05:30
gl_state.cpp android: renderer_opengl: Partially implement glLogicOp on GLES. 2021-07-24 23:37:03 +05:30
gl_state.h use separate texture buffer for light and fog 2021-07-24 23:36:53 +05:30
gl_stream_buffer.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
gl_stream_buffer.h Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
gl_vars.cpp video_core: add workarounds to enable GLES support 2019-02-12 16:57:18 -06:00
gl_vars.h video_core: add workarounds to enable GLES support 2019-02-12 16:57:18 -06:00
pica_to_gl.h video_core: Run clang format 2022-08-22 08:00:30 +03:00
post_processing_opengl.cpp citra_android: Storage Access Framework implementation (#6313) 2023-03-23 14:30:52 +01:00
post_processing_opengl.h post_processing_opengl: Make use of std::string_view with GetPostProcessingShaderCode() 2020-04-18 22:27:44 -04:00
renderer_opengl.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
renderer_opengl.h Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
texture_downloader_es.cpp code: Cleanup and warning fixes from the Vulkan PR (#6163) 2022-11-04 23:32:57 +01:00
texture_downloader_es.h video_core: implement GLES depth/stencil downloads 2021-10-02 14:19:27 +05:30