UnknownShadow200
9ca7c002be
Slightly optimise matrix code to a single pointer lookup
2025-02-22 08:17:56 +11:00
UnknownShadow200
5e2ea81593
Avoid lighting unless needed
2025-02-22 07:40:12 +11:00
UnknownShadow200
93c81739ba
WIP on a separate T&L effects file
2025-02-22 06:43:44 +11:00
Falco Girgis
70e0d503a9
Fixed incorrect alpha vertex color value.
...
- _readColorXXXARGB() macros were being passed the incorrect input index
for the alpha channel from the outer macros, fixed.
- Thanks for finding it, UnknownShadow200!
2025-02-19 13:03:05 -06:00
Falco Girgis
b09e630304
Implemented support for all vertex attribute fmts.
...
1) GLdouble was incorrectly being treated as GLfloat which is now broken
with -m4-single as default. Fixed.
2) Implemented all missing double-precision vertex attribute reader
functions.
3) Implemented all missing vertex reader/extracter functions for
unsigned/signed ints and unsigned/signed shorts.
4) Added (void) argument lists to every function missing them.
- Not the same as accepting no arguments in C, as with C++.
5) Added KOS's __restrict to software.h so it can be used in common code.
2025-02-19 08:54:21 -06:00
Falco Girgis
643685a7b7
ifdef-ing more DC-specifics from Nehe16
...
- Attempting to fix build.
2025-02-18 22:04:49 -06:00
Falco Girgis
56f5b24d85
Fixed OpenGL Fog implementation + Added New Sample
...
- Redid fog.c OpenGL fog back-end implementation
* only reconfigure fog values when changed
* properly clamp between 0.0f and 1.0f colors
* error out on negative densities
* separate fog statics became single struct
- Added Nehe16 example (adapted from KGL)
* Made spinning much faster (so you can see it better)
* fixed a few issues with KGL code (invalid GL enums, lol)
* swapped to new controller API
* added #ifdef for non-DC file paths
2025-02-18 21:52:19 -06:00
Luke Benstead
e71560f31b
Merge branch 'platform_h_support_Naomi' into 'master'
...
platform.h: support Naomi again
See merge request simulant/GLdc!150
2025-02-09 20:21:51 +00:00
David Reichelt
08b2d58b4e
Add support for glGetIntegerv(GL_MATRIX_MODE,...)
...
(cherry-picked from commit 52011fe9efeb2e997637876be8a3f600bf91df25)
Co-authored-by: David Reichelt <freakdave@hotmail.com>
2025-02-09 19:13:38 +00:00
Luke Benstead
787b873674
Merge branch 'lighting_fix' into 'master'
...
Fix lighting using some values calculated for last vertex, instead of the current vertex
See merge request simulant/GLdc!151
2025-02-08 07:07:59 +00:00
UnknownShadow200
b7ac22ec34
Fix lighting using some values calculated for last vertex, instead of the current vertex
2025-02-08 12:23:43 +11:00
T_chan
72f11428d3
platform.h: support Naomi again
2025-02-05 20:29:21 +00:00
Troy Davis
9d2c1fb3e8
Merge branch GLdc:master into glCompressedTexSubImage2D-recreated
2025-02-05 18:00:14 +00:00
GPF
41e30028df
fixed gluPerspective to use GLdouble instead of GLfloat for m4-single compilation.
2025-02-05 10:42:05 -07:00
GPF
af460af119
Recreated glCompressedTexSubImage2D implementation
2025-02-04 14:27:18 -07:00
UnknownShadow200
5b5e6d3ee6
Fix alloc_count_continuous calculation
2025-02-03 06:53:16 +11:00
Luke Benstead
acee4b5c37
Merge branch 'quicker_transform' into 'master'
...
Quicker vertex transform in non-fast path
See merge request simulant/GLdc!144
2025-02-02 08:34:36 +00:00
Luke Benstead
9100660c78
Merge branch 'attribute_speedup' into 'master'
...
Move attribute parsing into separate file and avoid recomputing parse/read functions unless necessary
See merge request simulant/GLdc!143
2025-02-02 08:32:06 +00:00
UnknownShadow200
a566bba082
Call TransformVertex directly instead of using TransformVertices
2025-02-02 15:58:19 +11:00
UnknownShadow200
3b2e549934
Optimise vertex transform in non-fast path to avoid storing xyz to memory and then loading it again
2025-02-02 14:36:40 +11:00
UnknownShadow200
9d717800bd
Reorganise attribute parsing functions
2025-02-02 13:51:30 +11:00
Luke Benstead
ea4073fbdc
Merge branch 'error_coldpath' into 'master'
...
Move error handling code into the cold path
See merge request simulant/GLdc!142
2025-02-01 11:10:52 +00:00
UnknownShadow200
e2c3ff0ed6
Fix not building for desktop
2025-02-01 20:12:23 +11:00
UnknownShadow200
e2fc2da055
Move error handling code into the cold path
2025-02-01 19:58:22 +11:00
UnknownShadow200
5318f11f11
Defer recomputing attributes state when possible
2025-02-01 18:17:28 +11:00
UnknownShadow200
3550c89501
Make non-textured non-fast drawing a little bit faster
2025-02-01 17:04:42 +11:00
UnknownShadow200
a35659ce3d
Fix enable/disable attribute calls not updating read functions
2025-02-01 16:05:07 +11:00
UnknownShadow200
bdecf90d64
Calculate read attribute functions when attribute states changes, instead of at every draw call
2025-02-01 15:38:59 +11:00
UnknownShadow200
3b4b1b6975
Fix compile error
2025-02-01 14:00:49 +11:00
UnknownShadow200
71d0094ac4
Prefer relying on built in codegen rather than relying on sh4_math.h
2025-02-01 13:06:37 +11:00
Falco Girgis
dc0c8148cb
API FP ABI conformity fixes.
2025-01-27 00:53:23 -06:00
Falco Girgis
9653bf8c12
Got rid of a memset4() call from KOS.
2025-01-23 21:27:34 -06:00
Luke Benstead
b4c2dd0a5e
Merge branch 'micro_opts' into 'master'
...
Few micro optimisations
See merge request simulant/GLdc!133
2024-12-22 22:31:47 +00:00
Luke Benstead
aa383913cd
Merge branch 'nonPOT2glTexSubImage2D' into 'master'
...
update for glTexSubImage2D, now checks the active texture size and not the...
See merge request simulant/GLdc!136
2024-12-07 23:27:52 +00:00
GPF
f7830df480
removed the commented out debug printing
2024-12-07 16:24:05 -07:00
Luke Benstead
55a912b621
Fix continuous free count
2024-12-07 19:54:16 +00:00
Luke Benstead
c4786a62e6
Fix bug in allocations (thanks @skmp)
2024-12-07 19:35:40 +00:00
GPF
553f6016f3
Only initialize the texture buffer with zeros if it's a partial update
2024-10-15 12:11:17 -07:00
GPF
b44dddbaff
removed some unneeded code
2024-10-15 12:04:17 -07:00
GPF
4adf11543b
fixed the case where xoffset and yoffset !=0 in glTexSubImage2D
2024-10-15 11:25:56 -07:00
GPF
a11847e513
update for glTexSubImage2D, now checks the active texture size and not the subimage size to draw the glTexSubImage2D pixelas into drawing with the xoffset and yoffset into the existing POT2 texture, so subimage size doesn't need to be a POT2.
2024-10-14 13:26:17 -07:00
GPF
72136bb7f5
quick implementation of glTexSubImage2D/_glTexSubImage2DValidate, update to nehe06 example to show usage of glTexSubImage2D, and a compile issue to primitive_modes fixed.
2024-10-13 12:58:09 -07:00
Falco Girgis
6407353121
Removed opb_count hack for older KOS versions
2024-10-09 22:20:32 -05:00
UnknownShadow200
490bf3de6d
Unify and slightly simplify specialised matrix multiply functions
2024-10-07 18:06:42 +11:00
UnknownShadow200
91b59ceca8
glXYZPointer methods now avoid recomputing state when only the data pointer changes
...
It is relatively common to call glXYZPointer multiple times with a different pointer but the same type/size
2024-10-07 18:06:03 +11:00
Luke Benstead
31676d9dc8
Merge branch 'sq_fix' into 'master'
...
Use direct render APIs instead of manually locking/unlocking store queues
See merge request simulant/GLdc!129
2024-10-04 14:29:12 +00:00
Luke Benstead
98577ebb31
Merge branch 'twid_speedup' into 'master'
...
Only check whether twiddle table needs updating once instead of every pixel
See merge request simulant/GLdc!130
2024-10-04 14:28:16 +00:00
UnknownShadow200
6f0acd5218
Only check whether twiddle table needs updating once instead of every pixel
...
Based on checking disassembly output in Release mode
2024-10-04 22:11:42 +10:00
UnknownShadow200
ea56577ca9
Use direct render APIs instead of manually locking/unlocking store queues
...
This ensures that GLdc works in both 2.1.0 and latest matter
2024-10-04 19:51:33 +10:00
UnknownShadow200
c30b16b97b
Fix points/lines being improperly culled
2024-10-03 08:08:33 +10:00
UnknownShadow200
2b06418fed
Fix not compiling on desktop due to relying on KOS specific frsqrt
2024-10-02 20:27:28 +10:00
UnknownShadow200
4513b040e2
Don't inline less optimal primitive modes
2024-10-02 20:07:36 +10:00
UnknownShadow200
165eb9d5c8
Add primitive modes sample, quad strips partially work
...
Although the second triangle is wrongly culled
2024-10-02 19:28:02 +10:00
UnknownShadow200
19a76cbefd
Fix lines
2024-10-02 19:00:05 +10:00
UnknownShadow200
a47f331cee
Initial work on supporting missing primitive modes
2024-10-02 07:48:44 +10:00
UnknownShadow200
d978e3187c
Fix array drawing mode not rendering properly in non-fast mode.
...
Also move vertex transform to be done inline in non-fast path, instead of all entirely at the end
2024-10-01 07:13:02 +10:00
Luke Benstead
75b992f52e
Fix multiple bugs in the allocator
2024-09-14 07:51:13 +01:00
Luke Benstead
42786f775e
Fix a bug in the allocator#
2024-09-14 07:46:11 +01:00
Luke Benstead
dc07cbc4d2
Merge branch 'blend2' into 'master'
...
Try to fix not being able to use GL_SRC_COLOR and GL_ONE_MINUS_SRC_COLOR as destination blend factor
See merge request simulant/GLdc!125
2024-09-06 13:26:55 +00:00
UnknownShadow200
d570030070
Try to fix not being able to use GL_SRC_COLOR and GL_ONE_MINUS_SRC_COLOR as destination blend factor
2024-09-06 22:13:31 +10:00
UnknownShadow200
5f28cae804
Tidy up textures table and add some missing formats
2024-09-04 21:26:46 +10:00
Luke Benstead
ab24e2db35
Make GL_MULTISAMPLE not throw an error
2024-08-28 22:39:05 +01:00
Falco Girgis
b6995edc66
Merge branch 'master' of https://gitlab.com/simulant/GLdc
2024-08-11 09:19:59 -05:00
Unknown Shadow
d737961e88
Merge branch 'master' into 'FasterImmediate'
...
# Conflicts:
# GL/immediate.c
2024-08-11 11:11:25 +00:00
UnknownShadow200
92ec1db643
Only update attribute pointers at end instead of per vertex
2024-08-11 19:39:27 +10:00
Falco Girgis
0f3be24cec
Merge branch 'master' of https://gitlab.com/simulant/GLdc into pvr_direct
2024-08-11 01:21:06 -05:00
Luke Benstead
ba76d67154
Merge branch 'ViewportTransform' into 'master'
...
Refactor viewport transform
See merge request simulant/GLdc!120
2024-08-04 20:18:41 +00:00
UnknownShadow200
d4fc57cab2
Fix not working properly, defer matrix calculation until needed
2024-08-03 16:40:23 +10:00
UnknownShadow200
2f26574a44
Combine projection transform and viewport transform together
2024-08-03 15:52:56 +10:00
Falco Girgis
812ed4a1ee
Fixing PC build.
2024-07-31 23:29:09 -05:00
Falco Girgis
b920855b57
Micro optimizations and clean-up.
2024-07-31 23:08:37 -05:00
Falco Girgis
873372995a
More cleanup.
2024-07-31 22:59:43 -05:00
Falco Girgis
49f2f0917b
Nehe20 Build Fix + Warnings cleanup for GCC14.1.0.
...
Newest toolchain is bitchier, so I wanted to go ahead and clear up all
of the warnings from building GLdc and the various examples...
1) Set CMake CXX standard to 14 instead of 11, since CXXFLAGS were
enforcing that language standard anyway.
2) Fixed a bunch of strict aliasing violations in immediate.c: glVertex3f.
3) Removed or commented out lots of unused variables.
4) Fixed some "suggested inner braces on initializer" crap.
5) Fixed a bunch of signed vs unsigned pointer assignments.
6) Fixed several printf() warnings from using %d with int32_t (needs to
be %ld for long int).
7) Fixed build issue with Nehe20 from not including kos.h for the
KOS_ROMDISK macro.
8) Fixed some signed vs unsigned comparison mismatches in C++ template
instantiations within clipping tests.
9)
2024-07-31 20:35:34 -05:00
Falco Girgis
a68c4bf6ac
Merge branch GLdc:master into master
2024-07-31 19:10:27 +00:00
Luke Benstead
60773e9db8
Fix alpha values
2024-07-21 10:28:13 +00:00
UnknownShadow200
6722e14b93
Simplify RGBA interpolation by avoiding a multiply and division by 255
2024-06-07 21:36:59 +10:00
Bkacjios
f06c72ff14
Should be GL_BGRA
2024-04-27 11:05:40 -04:00
Bkacjios
0facbd16b2
Add conversion from argb1555 to argb4444
2024-04-27 09:53:03 -04:00
Falco Girgis
5fd6e51028
Readded prefetching.
2024-04-10 01:09:29 -05:00
Falco Girgis
54e46822bd
Merge remote-tracking branch 'origin/master' into HEAD
2024-04-10 00:40:37 -05:00
Luke Benstead
572fa01b03
Fix edge case
2024-04-06 21:13:17 +01:00
Luke Benstead
6a6d229e4c
Fix bug with multiple strips
2024-04-04 06:30:37 +01:00
Luke Benstead
77f4b59aea
Fix off-by-one
2024-04-03 22:30:41 +01:00
Luke Benstead
5299badf58
Only submit trailing vertices if the previous triangle was visible
2024-04-03 22:09:35 +01:00
Luke Benstead
f8d1fa3439
Fix some issues with clipping
2024-04-03 21:19:36 +01:00
Luke Benstead
a8f3d86705
Start cleaning up the zclip code
2024-04-02 22:28:36 +01:00
Luke Benstead
d4f6a9636b
Fix more freezes and clipping issues
2024-03-19 20:14:01 +00:00
Luke Benstead
d6ac295d18
Fix more potential freezes
2024-03-19 08:14:38 +00:00
Luke Benstead
b353151dca
Fix freeze due to bad clipping
2024-03-18 20:56:15 +00:00
Luke Benstead
cf4a557489
Fix CLIP_DEBUG
2024-03-18 20:18:58 +00:00
Luke Benstead
c85aed2d28
Set the opb counter
2024-03-11 19:11:35 +00:00
darcagn
eef1548914
Update matrix.c
2024-02-18 23:34:59 +00:00
darc
d92a5b1b07
Fix GL/matrix.c to work properly on -m4-single
2024-02-17 02:45:37 -06:00
T_chan
bd17c995ea
Naomi: don't call flashrom_get_region, as KOS Naomi does not include flashrom functions
2024-02-03 11:42:39 +00:00
T_chan
58f5f52eac
avoid reading the flashrom if we know we are in VGA mode
2024-02-02 20:08:04 +00:00
Falco Girgis
04c2fcceae
Getting rid of prefetching.
2024-01-31 14:59:58 -06:00
Falco Girgis
d4a83ff235
Fixed a double promotion, put back prefetching.
2024-01-31 14:46:49 -06:00
Falco Girgis
8d1ce547f5
Screwed up prefetch macro.
2024-01-31 02:51:51 -06:00
Falco Girgis
313341f93d
Trying without prefetching.
2024-01-31 02:50:01 -06:00
Falco Girgis
4033e9c23a
Submitted wrong size to sq_fast_cpy()
2024-01-31 01:59:46 -06:00