Hayden Kowalchuk
c842b6de48
chore: matrix.c unused notation, memcpy changes
...
- moved to memcpy4
- removed unused arrays
- moved to proper glDepthRangef signature
- rewrote gluLookAt for current and future gcc
2020-03-05 14:53:48 -05:00
Hayden Kowalchuk
651351f087
fix: glu.c changed to float, reordered math
2020-03-05 14:50:14 -05:00
Hayden Kowalchuk
c9dc5f8f8b
fix: framebuffer.c marking inline, unused notation
2020-03-05 14:49:23 -05:00
Hayden Kowalchuk
e587519e14
fix: draw.c inline changes, and unused notation
...
- remove redundant call to isLightingEnabled
- rewrote vec3f normalize call
- moved checking for fastpath until we need it
2020-03-05 14:48:37 -05:00
Hayden Kowalchuk
eb351f519a
fix: config.h moved to #pragma once
...
- whitespace fixes
2020-03-05 14:45:05 -05:00
Hayden Kowalchuk
c0d4e26533
feat: clip.c changed to moop math
...
- fmac where it was intended
2020-03-05 14:44:41 -05:00
Luke Benstead
1d1a980f16
Fix memory leak (thanks @HaydenKow)
2020-03-02 19:20:42 +00:00
Luke Benstead
7e7d90b606
Inline some things
2020-02-29 13:25:30 +00:00
Luke Benstead
937ad56c26
Fix out of bounds read
2020-02-29 09:48:52 +00:00
Luke Benstead
43a8db9e9d
Remove divisions
2020-02-29 09:48:51 +00:00
Luke Benstead
a3b1ca66c3
Remove divisions
2020-02-22 21:00:33 +00:00
Luke Benstead
1520226174
Fix directional lighting
2020-02-22 20:33:23 +00:00
Luke Benstead
7fecb7a3a5
Fix directional lights
2020-02-21 14:51:05 +00:00
Luke Benstead
497ba28b4c
Replace pow function
2020-02-20 09:44:45 +00:00
Luke Benstead
59118cc07d
Restore support for glColormaterial
2020-02-19 10:45:31 +00:00
Luke Benstead
a502f92ded
More lighting improvements
2020-02-19 09:30:26 +00:00
Luke Benstead
24fe33358c
Faster floor
2020-02-17 20:49:40 +00:00
Luke Benstead
4ebd112784
Attempt to fix specular
2020-02-17 20:29:12 +00:00
Luke Benstead
28f77969ea
Avoid overflows
2020-02-17 19:09:21 +00:00
Luke Benstead
29cbdc75b7
Fix a copy-paste bug (thanks @freakdave)
2020-02-17 19:05:57 +00:00
Luke Benstead
ab5dc26e33
Only calculate specular if there is an exponent
2020-02-17 19:05:18 +00:00
Luke Benstead
93be3ab757
Use super-simple floor function
2020-02-17 19:02:45 +00:00
Luke Benstead
6516f0f6f5
Prevent overflowing colours
2020-02-17 10:38:30 +00:00
Luke Benstead
5183d7b2d4
Fix strict aliasing issues
2020-02-17 10:31:26 +00:00
Luke Benstead
ab69030b1e
Fix lighting colours
2020-02-17 10:21:33 +00:00
Luke Benstead
35842ad300
Faster FPOw implementation
2020-02-17 10:12:15 +00:00
Luke Benstead
2178d2f6d7
Improve lighting performance
...
This is (another) first pass at improving the performance of the lighting code.
As part of this refactor *we have lost glColorMaterial*. I need to figure out a
nice way of implementing it without slowing the common code path.
2020-02-16 20:36:49 +00:00
Luke Benstead
dafc56c396
Add new file
2020-01-01 14:30:03 +00:00
Luke Benstead
eeb95193ac
Fix overflow
2019-12-27 19:35:18 +00:00
Luke Benstead
b2a2e71795
Much faster lighting implementation
2019-12-27 10:36:30 +00:00
Luke Benstead
a280dac778
Performance improvements
2019-11-30 10:07:41 +00:00
Luke Benstead
62b53f0fb1
Simplify swapVertex
2019-11-30 10:07:23 +00:00
Luke Benstead
e61369674c
Change where txr.alpha is set
2019-11-30 10:07:04 +00:00
Luke Benstead
e97dd466aa
Fix depth test functions
2019-11-30 10:06:46 +00:00
Luke Benstead
cdfb805dd9
Implement a fast path for glDrawElements
2019-11-27 20:08:29 +00:00
Luke Benstead
140eec3d92
glNormalPointer should accept GL_INT_2_10_10_10_REV, not GL_UNSIGNED_INT_2_...
2019-11-27 09:10:10 +00:00
Luke Benstead
11cd54bc0b
Add partial support for GL_ARB_vertex_type_2_10_10_10_rev and also GL_NORMALIZE
2019-11-18 17:39:09 +00:00
Luke Benstead
fd3e7cde6c
Improve the light sample + tweaks
2019-11-14 21:12:27 +00:00
Luke Benstead
8654ff24a2
Add light sample and fix lighting bug
2019-11-14 10:04:15 +00:00
Luke Benstead
9f3adc099a
Fix a bad reference
2019-11-12 17:28:39 +00:00
Hayden Kowalchuk
805c68e973
remove single minus sign
2019-10-04 10:29:54 -04:00
Luke Benstead
f59e9bf56e
Implement GL_ARB_vertex_array_bgra
2019-09-30 21:59:11 +01:00
Luke Benstead
d7e424a766
Initial implementation of a fast-path (currently some corruption)
2019-09-30 09:14:43 +01:00
Luke Benstead
2c5b71b2b0
Implement mipmap generation for paletted textures
2019-09-26 09:17:07 +01:00
Luke Benstead
08ba39f6d1
Fix twiddled mipmap generation
2019-09-25 13:45:08 +01:00
Luke Benstead
2e1e28ce51
More mipmap generation fixes
2019-09-25 13:32:13 +01:00
Luke Benstead
36a3f7082f
Implement mipmap generation for twiddled textures
2019-09-25 13:10:34 +01:00
Luke Benstead
e14db20a41
Fix a bunch of mipmap issues
2019-09-24 21:26:17 +01:00
Luke Benstead
2b53f50c46
Add some copy safety and remove some print statements
2019-09-24 19:39:23 +01:00
Luke Benstead
150c95bd33
Huge refactor of mipmap handling. All textures are now stored twiddled on the PVR
2019-09-24 15:47:23 +01:00
Luke Benstead
888a48562f
Generate version.h and print version on boot. Fixes #46
2019-09-22 21:48:43 +01:00
Luke Benstead
8f84cbb142
Various cleanups from @mrneo
2019-09-22 20:52:58 +01:00
Ben Baron
b192bfc451
Fixed comment
2019-09-17 08:28:43 -05:00
Ben Baron
cb675434c7
Fixed GL_ALPHA support (convert to argb format)
2019-09-16 20:48:06 -05:00
Luke Benstead
e39632bcc4
Refactor matrix management and clipping
2019-09-14 20:51:47 +01:00
Luke Benstead
e7f2ad7dcc
Optimise multitexture submission
2019-09-09 09:36:06 +01:00
Luke Benstead
3af18cb514
Refactor the perspective divide to work with glDepthRange
2019-09-08 17:27:56 +01:00
Luke Benstead
1d32834b52
Simplify texture and blending context updates
2019-09-06 09:35:57 +01:00
Luke Benstead
22690600d0
Don't include kos headers from gl.h
2019-09-06 09:35:33 +01:00
Luke Benstead
4170655a88
If someone attempts to use lines, just log an error and render nothing (for now)
2019-09-06 09:34:55 +01:00
Luke Benstead
8e59b9adb5
Make sure we clamp floating point colours to avoid overflows
2019-09-04 17:59:57 +01:00
Luke Benstead
57f4f62f86
Implement glColor3ubv
2019-08-20 20:42:29 +01:00
Luke Benstead
b6fccd3148
Use PVR_TXRENV_MODULATE instead of MODULATEALPHA. Fixes #48
2019-08-08 09:36:38 +01:00
Luke Benstead
b82d28130d
Rewrite the lighting code
2019-08-01 20:21:13 +01:00
Luke Benstead
3395f17687
Throw GL_INVALID_OPERATION if mipmaps are specified for non-square textures
2019-04-17 16:19:03 +01:00
Luke Benstead
62743d42cb
Only allocate space for mipmaps when necessary
2019-04-17 14:55:30 +01:00
Luke Benstead
a8d420299c
Correctly throw GL_INVALID_VALUE for invalid sizes
2019-04-14 08:51:37 +01:00
Luke Benstead
6cfb4e437c
Handle GL_DOUBLE like GL_FLOAT everywhere
2019-04-14 07:17:27 +01:00
Luke Benstead
cb692f59b4
Remove unnecessary conditional check
2019-04-01 09:57:33 +01:00
Luke Benstead
d912680ef0
Update version string
2019-03-30 07:15:50 +00:00
Luke Benstead
e876dcb14f
Massively optimise GL_POLYGON/GL_TRIANGLE_FAN
2019-03-29 11:26:19 +00:00
Luke Benstead
9fafe31a37
Disable profiler
2019-03-29 11:26:19 +00:00
Luke Benstead
a75ced3fef
Speed up immediate mode submission
2019-03-29 11:26:19 +00:00
Luke Benstead
1e18fbc527
Fix twiddling code. Fixes #37
2019-03-29 11:26:19 +00:00
Luke Benstead
2e33dc0718
Add missing profiler_pop(). Fixes #36
2019-03-29 11:26:19 +00:00
Luke Benstead
41ee67cbf1
Code cleanup
2019-03-28 13:10:53 +00:00
Luke Benstead
e15a47b6fb
Use the list stored on the SubmissionTarget
2019-03-28 13:09:36 +00:00
Luke Benstead
3cd15de332
Add additional traces
2019-03-28 13:09:04 +00:00
Luke Benstead
8982444406
Consistently allow > 16384 verts
2019-03-28 13:07:53 +00:00
Luke Benstead
cd04784c33
Fix memory corruption
2019-03-28 13:05:13 +00:00
Luke Benstead
30f8564298
Fix glDrawElements
2019-03-27 09:39:06 +00:00
Luke Benstead
434f316526
Switch pointer comparisons for counters
2019-03-26 09:09:07 +00:00
Luke Benstead
d44a24d339
Add assertions
2019-03-25 19:43:03 +00:00
Luke Benstead
9e12e15a13
Make use of swapVertex
2019-03-25 19:30:45 +00:00
Luke Benstead
bdeb9cd45a
Restore clipping case that apparently can happen after all
2019-03-25 19:04:50 +00:00
Luke Benstead
493592ea30
Tweaks
2019-03-25 16:07:27 +00:00
Luke Benstead
ba04f62f6d
Minor optimisation
2019-03-25 16:07:12 +00:00
Luke Benstead
f712f00602
Don't do anything if there are no vertices submitted
2019-03-25 16:06:41 +00:00
Luke Benstead
4355d0f224
Add additional profiler checkpoints
2019-03-25 16:06:28 +00:00
Luke Benstead
70feea6c6f
Minor optimisations
2019-03-25 16:05:36 +00:00
Luke Benstead
b771a5339b
Send colours as bytes in immediate mode
2019-03-25 12:56:48 +00:00
Luke Benstead
8fd90bd040
Switch back to normal swapping
2019-03-25 12:38:34 +00:00
Luke Benstead
0e71588e6c
Try to optimise the quad generation
2019-03-25 10:33:05 +00:00
Luke Benstead
671881eafd
Optimise GL_POLYGON rendering
2019-03-25 09:48:58 +00:00
Luke Benstead
291e82d18a
Rename ClipVertex -> Vertex
2019-03-25 09:44:59 +00:00
Luke Benstead
bd0ef4cba3
Demo multitexturing in zclip, default to GL_MODULATE on multitexture
2019-03-24 14:09:52 +00:00
Luke Benstead
5e6927d9a1
Huge refactor of the drawing code
2019-03-24 08:09:02 +00:00
Luke Benstead
3cb24c4fb4
Rename some functions
2019-03-14 13:16:55 +00:00
Luke Benstead
e9c8836181
Huge cleanup of glDrawElements handling
2019-03-14 13:15:56 +00:00
Luke Benstead
1ee16d8ee1
Slight optimisation
2019-03-13 17:38:42 +00:00
Luke Benstead
7c33f13438
Allow configuring initial capacities
2019-03-13 15:43:50 +00:00
Luke Benstead
d9539da841
Optimisations
2019-03-13 15:35:42 +00:00
Luke Benstead
8101e43e90
Fix winding issue
2019-03-13 15:19:28 +00:00
Luke Benstead
724ff628aa
Fix some signedness issues
2019-03-13 15:14:09 +00:00
Luke Benstead
8b206f012e
Make sure we correctly initalize the used banks
2019-03-13 12:05:06 +00:00
Luke Benstead
5bf58ec1a8
Refactor array submission to be (hopefully) faster
2019-03-13 11:24:35 +00:00
Luke Benstead
5da1ed732a
Bump the default vbuf capacity
2019-03-13 08:53:35 +00:00
Luke Benstead
3d8fa7027b
Properly forward the internal_palette_format
2019-03-13 08:51:05 +00:00
Luke Benstead
2ad23b1e16
Update version string
2019-03-11 19:54:55 +00:00
Luke Benstead
8b13e3adaf
Reserve 0 in the framebuffer thing (WIP)
2019-03-11 19:24:08 +00:00
Luke Benstead
957ebfa662
Fix texture twiddling
2019-03-11 19:14:30 +00:00
Luke Benstead
588c082ec8
Allow specifying palette, autosort, memory options via glKosInitEx
2019-03-11 19:07:59 +00:00
Luke Benstead
8f26e9c364
Fix a bug in the morton_index function
2019-03-11 09:12:48 +00:00
Luke Benstead
a561fd469f
Protect against invalid read
2019-03-10 20:18:11 +00:00
Luke Benstead
834599dc4b
Add glDrawBuffer stub
2019-03-10 20:05:40 +00:00
Luke Benstead
7512c1e767
Fix GL_ALPHA_TEST sample
2019-03-10 19:59:34 +00:00
Luke Benstead
e4186a05bf
Start working on a test for GL_ALPHA_TEST
2019-03-10 19:38:47 +00:00
Luke Benstead
04dab8da9a
Implement glAlphaFunc and glEnable(GL_ALPHA_TEST)
2019-03-10 17:53:58 +00:00
Luke Benstead
25bd3aedc8
Increase the max polygon size to 32
2019-03-10 16:10:59 +00:00
Luke Benstead
91c3b66d73
Add GL_MODELVIEW_MATRIX as an option to glGetFloatv
2019-03-10 12:30:39 +00:00
Luke Benstead
b00b65af54
Fix issues with triangle fans / polygons
2019-03-10 12:24:27 +00:00
Luke Benstead
1807a0119c
Add some missing function stubs
2019-03-10 12:19:45 +00:00
Luke Benstead
259a82e69f
Add support for multiple shared palettes
2019-03-10 11:18:56 +00:00
Luke Benstead
864dc45d10
Allocate palette slots on a FIFO basis
2019-03-09 14:32:50 +00:00
Luke Benstead
4d6cea59b7
Increase the max texture count
2019-03-08 21:38:39 +00:00
Luke Benstead
516cae7893
Store palettes in RAM not VRAM
2019-03-08 21:36:53 +00:00
Luke Benstead
ac3ffb9ce0
Make the binary symbols more compatible
2019-03-08 21:36:53 +00:00
Luke Benstead
df3cdf0ebb
Fix drawing polygons. Fixes #35
2019-03-07 21:41:25 +00:00
Luke Benstead
d7342fa0c0
Automatically twiddle non-twiddled palette data
2019-03-07 21:21:30 +00:00
Luke Benstead
3e1ed8a5f7
Don't reserve more space than we need
2019-03-06 08:31:06 +00:00
Luke Benstead
d89997a277
Simplify the element drawing
2019-03-04 20:41:33 +00:00
Luke Benstead
7c0a123aac
Correctly initialize the shared palette. Fixes #34
2019-03-04 08:44:19 +00:00
Luke Benstead
efa63ebff2
Don't apply the shared palette if it hasn't been specified yet. Fixes #34
2019-03-04 08:42:24 +00:00
Luke Benstead
11bb588279
Make sure we reupload the palette if it's changed by glColorTableEXT
2019-03-03 20:21:42 +00:00
Luke Benstead
526b1f0d16
Add some assertions
2019-03-03 19:49:28 +00:00
Luke Benstead
ba4fde3975
Fix depth funcs
2019-03-03 19:41:19 +00:00
Luke Benstead
44ca14bcbd
Add assertions
2019-03-03 19:11:53 +00:00
Luke Benstead
5f7fef2cf9
Prefix non-static private functions with '_gl'
2019-03-03 19:06:01 +00:00
Luke Benstead
926214bd82
Prefix some non-static private functions with '_gl'
2019-03-03 19:02:25 +00:00
Luke Benstead
2382126603
Make palette binding lazy
2019-03-03 18:56:18 +00:00
Luke Benstead
ef06af793a
Don't apply the color table unless a texture is bound
2019-03-03 18:54:25 +00:00
Luke Benstead
3c3018450f
Support twiddled and non-twiddled paletted textures
2019-03-03 18:49:33 +00:00
Luke Benstead
d12032c961
Store palette data in PVR ram
2019-03-03 18:49:06 +00:00
Luke Benstead
f349cd1b49
Fix packing order issue (thanks @mrneo240!)
2019-03-03 18:48:50 +00:00
Luke Benstead
cf273eab42
Add glTexParameterf (thanks @mrneo240)
2019-02-28 19:21:16 +00:00
Luke Benstead
b0c9ac7207
Remove zero special casing from named array
2019-02-28 18:33:37 +00:00
Luke Benstead
31ed419dfa
Don't allow zero as a valid texture ID
2019-02-28 18:28:55 +00:00
Luke Benstead
02937ccd2c
Add stub with just GL_PROJECTION_MATRIX supported
2019-02-28 08:46:13 +00:00
Luke Benstead
111d4ca83e
Handle calling glBindTexture on an unknown name
2019-02-27 20:45:53 +00:00
Luke Benstead
f6af3ab3fb
Implement new conversion
2019-02-27 20:11:14 +00:00