Commit graph

137 commits

Author SHA1 Message Date
wheremyfoodat
c10a3e7160 Make emulator output size properly configurable 2023-10-01 16:28:14 +03:00
wheremyfoodat
5155682e0f Get emulator rendering working with Qt 2023-10-01 01:28:08 +03:00
wheremyfoodat
eade124f00 Make blank texture have an alpha of 0
Fixes Callum's face in funny game

Co-Authored-By: GPUCode <47210458+GPUCode@users.noreply.github.com>
2023-09-13 21:07:35 +03:00
wheremyfoodat
5106f251cf [SDMC] Handle ASCII paths for CreateDirectory 2023-08-20 16:53:06 +03:00
wheremyfoodat
7bbf37bb63 Implement reading texture from NULL 2023-08-18 16:19:54 +03:00
wheremyfoodat
fc641a450b Add a shut up counter to GL::TextureCopy 2023-08-12 18:26:51 +03:00
wheremyfoodat
5d1a2625f5 GL: Fix logic op in display 2023-08-12 18:06:29 +03:00
wheremyfoodat
0f973a4ae4 Fix immediate mode vertex submission 2023-08-12 17:52:50 +03:00
wheremyfoodat
0f5c41cd69 Add clear colour to GL state manager 2023-08-12 17:02:00 +03:00
GPUCode
4107a84c0d renderer_gl: Avoid leaking clear color to display 2023-08-12 15:23:50 +03:00
GPUCode
dc342675f5 renderer_gl: Add display transfer flip 2023-08-12 12:42:37 +03:00
GPUCode
d6e5f658d6 renderer_gl: Proper viewport rendering
* I've also corrected a mistake made in the displayTransfer/textureCopy rectangles.
2023-08-12 12:42:28 +03:00
GPUCode
9417c75ca7 gsp: Fix setbufferswap framebuffer selection 2023-08-09 11:50:56 +03:00
wheremyfoodat
ca3c2550f2 Fix trampling clip state 2023-08-07 00:19:16 +03:00
GPUCode
82d9511993 gpu: Implement basic texcopy
* Improves rendering in FE:A but the screens will still not show
  because it requires surface validation
2023-08-06 14:43:30 +03:00
wheremyfoodat
73a18e3609 Switch out math_util.hpp 2023-08-04 16:14:41 +03:00
wheremyfoodat
9695b57bf5 [PICA] Rework how external registers work, format 2023-08-04 00:42:11 +03:00
wheremyfoodat
a8a76ab64d Shush warnings 2023-08-03 20:37:40 +03:00
GPUCode
c805504f70 gpu: Add display transfer rectangles 2023-08-03 16:37:19 +03:00
GPUCode
f75a23b5a9 code: Better screen support 2023-08-02 22:26:08 +03:00
wheremyfoodat
c7cad054e2 Update renderer_gl.cpp 2023-07-28 03:12:28 +03:00
wheremyfoodat
73321856c8 Mooore 2023-07-28 03:03:10 +03:00
wheremyfoodat
adb78bf838 [GL] More state stuff 2023-07-28 01:35:49 +03:00
wheremyfoodat
64fa970468 [GL] Actually implement logic ops 2023-07-27 21:57:50 +03:00
wheremyfoodat
1ea0b39a3b [GL] Fix glClear call 2023-07-27 21:47:39 +03:00
wheremyfoodat
60655febba [GL] Disable scissor in clearBuffer 2023-07-27 19:39:49 +03:00
wheremyfoodat
79a341a297 [GL] Fix depth mask getting corrupted, remove dead code 2023-07-27 18:17:14 +03:00
wheremyfoodat
1d3b078dfb Convert warn to log 2023-07-27 18:01:18 +03:00
wheremyfoodat
b4cc743608 [GL] Add stencil enable to state tracker 2023-07-27 15:34:21 +03:00
GPUCode
c6c71bb9b2 renderer_gl: Implement semi proper clears 2023-07-26 22:34:39 +03:00
GPUCode
50bcf3b617 renderer_gl: Respect depth-stencil write flag 2023-07-26 22:13:41 +03:00
GPUCode
6f7874227c renderer_gl: Implement logic op 2023-07-26 22:08:20 +03:00
wheremyfoodat
95a8917589 renderer_gl: Implement stencil testing 2023-07-26 22:05:30 +03:00
Wunkolo
b048d4dd6e Add SDL_Window to initGraphicsContext prototype
This value is needed for vulkan to properly allocate a surface, and would benefit OpenGL to move more of its initialization code into here rather than in `emulator.cpp`.
2023-07-22 13:16:23 -07:00
wheremyfoodat
fbcb7cee42
Merge pull request #128 from GPUCode/span-across
texture: Use spans
2023-07-20 16:10:00 +03:00
GPUCode
a019d98af9 texture: Use spans 2023-07-20 15:43:24 +03:00
Wunkolo
b10e69de0e Add virtual deconstructor override
Virtual classes need to override the base-type deconstructor so that they are proper called when referred to by their base-type.
2023-07-17 09:30:12 -07:00
Wunkolo
a9bb11e4b3 Migrate OpenGL string-literals to embedded files
Rather than declaring a big C++ literal for these strings, they are now
proper `.vert` and `.frag` files that will become embedded into the
application at build-time. It also allows for clang-format to format the
glsl files the same as our C++ code. CMake will also automatically track
and re-embed the file if it detects that the glsl source files have
changed since the last build. Ex, making a change to
`opengl_display.frag` and compiling will automatically recompile and
link the resource-target that it is associated with.
2023-07-15 19:12:07 -07:00
wheremyfoodat
a601686cb1 Pretend to know CMake 2023-07-16 00:11:07 +03:00
wheremyfoodat
7b6cd90d36 Cleanup for #98 2023-07-15 04:56:43 +03:00
Wunkolo
666fd96e7f Move color/depth format and size to Renderer interface
The state of these values are not specific to any rendering backend and
can be moved to be part of the interface itself
2023-07-11 11:28:06 -07:00
Wunkolo
5b7fa5be7e Remove redundant Renderer::screenshot definition 2023-07-11 11:28:06 -07:00
Wunkolo
0f3d77768d Fix array declarations to use block-formatting 2023-07-11 11:28:06 -07:00
Wunkolo
4864c51125 Migrate OpenGL specific headers to renderer_gl 2023-07-11 11:28:06 -07:00
Wunkolo
c53080b444 Fix HTTPServer gpu-renderer interfacing
Fixing some compilation issues that occur when enabling the HTTP server
2023-07-11 11:28:06 -07:00
Wunkolo
2a1683ba62 Introduce "Renderer" abstraction layer
Adds a `renderer` class for which a rendering backend must implement and
will conditionally use OpenGL in the case that `ENABLE_GL` is enabled.
2023-07-11 11:27:35 -07:00
Wunkolo
d96289cc05 Address remaining C4244 warnings
Remaining warnings regarding an implicit cast from `double` to `float`.
2023-07-10 12:33:37 -07:00
Wunkolo
37b75f0928 Fix C4267/C4244 warnings
Address warnings involving lossy conversions from larger integer-types into smaller integer-types
2023-07-10 12:33:37 -07:00
wheremyfoodat
ba1c3a8ec5 Moar HTTP 2023-07-10 11:30:09 +03:00
wheremyfoodat
883e1d4bd0 Madness trying to optimize assembly by reordering statements 2023-07-05 22:16:15 +03:00