Lime3DS/src/video_core
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
..
debug_utils general: Use deducation guides for std::lock_guard and std::unique_lock 2019-04-07 15:14:29 +02:00
rasterizer_cache Add per game configuration options (#6187) 2022-12-08 13:27:25 +02:00
renderer_opengl Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
renderer_software Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
shader Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
texture Resolve compilation errors related to the Color namespace change 2022-11-15 11:25:51 +01:00
CMakeLists.txt Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
command_processor.cpp command_processor: Resolve undefined behavior type punning 2020-04-27 15:35:21 -04:00
command_processor.h video_core serialization 2020-02-13 17:34:16 +08:00
generate_shaders.cmake video_core: add texture filtering (#5017) 2020-03-16 09:42:05 -05:00
geometry_pipeline.cpp code: Cleanup and warning fixes from the Vulkan PR (#6163) 2022-11-04 23:32:57 +01:00
geometry_pipeline.h Fixed setting the right DSP service on deserialization 2020-02-13 17:42:10 +08:00
gpu_debugger.h code: Cleanup and warning fixes from the Vulkan PR (#6163) 2022-11-04 23:32:57 +01:00
pica.cpp pica_state: Make use of std::array 2020-04-27 15:35:18 -04:00
pica.h Update the entire application to use the new clang format style 2018-03-09 10:54:43 -07:00
pica_state.h Separate the enums from cam/cam.h 2020-08-19 01:45:57 -03:00
pica_types.h clang-format fixes 2020-02-13 17:39:15 +08:00
precompiled_headers.h Port yuzu-emu/yuzu#9300: "CMake: Use precompiled headers to improve compile times" (#6213) 2022-12-17 16:06:38 +01:00
primitive_assembly.cpp primitive_assembly: Take triangle_handler by reference 2020-04-18 20:40:45 -04:00
primitive_assembly.h Fix savestates compatibility (#5256) 2020-04-20 16:21:37 +02:00
rasterizer_accelerated.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
rasterizer_accelerated.h Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
rasterizer_interface.h Sync GPU state after loading (fix FE terrain bug) 2020-04-11 10:28:52 +01:00
regs.cpp Pica/Regs: Use binary search to look up reg names 2017-02-09 00:04:24 -08:00
regs.h renderer_opengl: Header cleanup 2022-08-21 02:22:57 +03:00
regs_framebuffer.h code: Cleanup and warning fixes from the Vulkan PR (#6163) 2022-11-04 23:32:57 +01:00
regs_lighting.h code: Cleanup and warning fixes from the Vulkan PR (#6163) 2022-11-04 23:32:57 +01:00
regs_pipeline.h CI: fix recent build issues (#6148) 2022-10-05 18:43:07 +02:00
regs_rasterizer.h common/vector_math: Move Vec[x] types into the Common namespace 2019-03-02 15:04:13 +01:00
regs_shader.h gl_rasterizer: Resolve truncation warnings 2020-05-01 06:08:20 -04:00
regs_texturing.h gl_rasterizer: implement mipmap 2019-03-08 09:37:24 -05:00
renderer_base.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
renderer_base.h Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
utils.h Update the entire application to use the new clang format style 2018-03-09 10:54:43 -07:00
vertex_loader.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
vertex_loader.h VideoCore: Move Regs to its own file 2017-02-04 13:59:12 -08:00
video_core.cpp Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00
video_core.h Prepare frontend for multiple graphics APIs (#6347) 2023-03-27 14:29:17 +03:00