Commit graph

99 commits

Author SHA1 Message Date
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
wheremyfoodat
52c7783ae1 [OpenGL] Same for depth func 2023-07-05 19:08:13 +03:00
wheremyfoodat
7307bd270b [OpenGL] Same for depth mask 2023-07-05 18:54:09 +03:00
wheremyfoodat
d80785cbb5 [OpenGL] More efficient colour mask handling 2023-07-05 18:23:14 +03:00
wheremyfoodat
feacb9359d Formatting 2023-07-05 02:59:54 +03:00
wheremyfoodat
dd3e1ea72b Ditch more uniforms 2023-07-05 01:37:18 +03:00
wheremyfoodat
c282a44c27 [OpenGL renderer] Fewer uniform uploads 2023-07-05 01:12:13 +03:00
wheremyfoodat
3e18281a99 Remove outdated comments 2023-07-05 00:46:34 +03:00
wheremyfoodat
139c8759c9 More OpenGL state management stuff 2023-07-05 00:43:49 +03:00
wheremyfoodat
a3d8f777b4 PicaVertex -> PICA::Vertex 2023-07-04 23:40:47 +03:00
wheremyfoodat
aa27389473 [GL renderer] Implement clipping planes 2023-07-04 20:33:14 +03:00
wheremyfoodat
0cc8d0d8a4 Some GLSL formatting 2023-07-04 18:47:56 +03:00
wheremyfoodat
e854d4ba63 Formatting 2023-07-04 18:15:27 +03:00
Sky
0f66527cbe
Merge pull request #1 from wheremyfoodat/master
Not Ignoring this PR I fucked up something on my Github GUI
2023-07-03 13:05:46 -07:00
Sky
157254e8a9 [GL] Set disabled light LUTs to 0
Fixes Kirby and Mario Kart
2023-07-02 22:01:42 -07:00
Sky
df555372ad [GL] Move quaternion to normal, et. al into vs 2023-07-02 21:04:29 -07:00
Sky
12dbaeaeb0 [GL] Initial Implementation of Lighting LUTs 2023-07-02 16:14:11 -07:00
wheremyfoodat
0b2ff6c5c8 Separate user and dev builds 2023-07-02 22:36:45 +03:00
Sky
769e90a45f [GL] Implement most fragment lighting 2023-07-01 22:14:57 -07:00
Sky
6fababb93a [GL] Pipe Pica registers and implement ambient lighting 2023-07-01 16:43:57 -07:00
Sky
de3c4020d8 [GL] Add lighting attributes 2023-07-01 15:16:35 -07:00
wheremyfoodat
1ac3a474da Fix formatting & cmake 2023-07-01 22:35:07 +03:00
Sky
ca89909c00 Refactored Vertex Pipeline to always use Pica Formatted Vertex 2023-07-01 11:39:25 -07:00
wheremyfoodat
84fd0affa8 [GL renderer] Fix up float * vec4 mul 2023-06-29 21:37:31 +03:00
fleroviux
7ebbfbf1ef [GPU] Remove magic constants in TEV and texture binding code as much as possible 2023-06-20 23:43:43 +02:00
fleroviux
7128ae5565 [GPU] Fix incorrect &-operator with unsigned and signed operand in the GLSL code 2023-06-20 23:00:54 +02:00
fleroviux
6b610a82d6 [GPU] Move texture binding into its own method 2023-06-20 22:58:52 +02:00
fleroviux
4cb7e3625b Merge branch 'master' of github.com:fleroviux/Panda3DS into pica-tev-emulation 2023-06-20 22:47:47 +02:00
fleroviux
901e3308a0 [GPU] Rename abgr8888_to_vec4() to abgr8888ToVec4() 2023-06-20 22:33:12 +02:00
fleroviux
2f19310c42 [GPU] Upgrade TEV functions and variables to Pesca style 2023-06-20 22:28:58 +02:00
fleroviux
7ad8a5041e [GPO] Use a_ and v_ prefixes for vertex shader inputs and outputs 2023-06-20 22:21:59 +02:00
fleroviux
2fc22bed24 [GPU] Decode GPUREG_TEXENVi_COLOR in the vertex shader as well 2023-06-20 22:18:23 +02:00
fleroviux
ef7d01d1b1 [GPU] Decode GPUREG_TEXENV_BUFFER_COLOR in the vertex shader 2023-06-20 22:09:14 +02:00
fleroviux
b7616cc9ec [GPU] Cleanup the TEV GLSL code a bit" 2023-06-20 21:44:55 +02:00
fleroviux
9b5a24329f [GPU] Simplify TEV source fetching by using an array to store the current source values 2023-06-20 21:31:52 +02:00
fleroviux
9386ce319b [GPU] Make the fragment shader GLSL a bit more readable. 2023-06-20 21:06:34 +02:00
fleroviux
13a53a9e9d [GPU] Disable the alpha combiner when the color combiner is in "Dot3 RGBA" configuration 2023-06-20 20:46:01 +02:00
fleroviux
a30f9ccd33 [GPU] Treat color and alpha sources as two separate RGBA values
Previously we fetched the RGB channels of the color source and the alpha channel of the alpha source
and combined these into a single RGBA source value that the source operands are applied to.
This is incorrect. The correct behavior is to fetch the full RGBA color for both the color and alpha
sources and to apply the color operand to the color source and the alpha operand to the alpha source,
i.e. using the *alpha* source R-channel when the alpha operand is "One minus source red".
Only after that we combine both sources into a single RGBA color.
2023-06-20 20:20:33 +02:00
fleroviux
9b1ed2084f [GPU] Implement initial support for multi-texturing 2023-06-20 00:01:12 +02:00