Commit Graph

208 Commits

Author SHA1 Message Date
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
Luke Benstead
920fc2b782 Increase the max number of textures to 512. Add config.h for settings like this. Fixes #29 2019-02-25 08:30:02 +00:00
Luke Benstead
7368f5c290 Add GL_SHARED_TEXTURE_PALETTE_EXT as a valid target to glColorTableEXT. Fixes #27 2019-02-25 08:26:04 +00:00
Luke Benstead
6d2c47bda1 Implement GL_EXT_shared_texture_palette 2019-02-21 21:58:31 +00:00
Luke Benstead
50f1e277d8 Merge branch 'master' into ext-paletted-texture 2019-02-21 21:26:23 +00:00
Luke Benstead
571438ef4e Implement glColorTableEXT 2019-02-21 20:35:18 +00:00
Luke Benstead
df44c0ea73 More performance work and fix bugs introduced in last commit 2018-10-09 09:27:53 +01:00
Luke Benstead
18759422ea Optimise non-indexed rendering paths 2018-10-08 22:03:50 +01:00
Luke Benstead
c84f211ad0 More work towards paletted textures 2018-09-22 20:45:17 +01:00
Luke Benstead
e4f8cb8c9b Add a width limit 2018-09-20 16:48:26 +01:00
Luke Benstead
9645b10ed6 Add paletted texture to the supported extensions 2018-09-20 15:11:01 +01:00
Luke Benstead
8670fd459c More conversions 2018-09-20 15:10:08 +01:00
Luke Benstead
741707ac85 Implement conversions to RGBA8 2018-09-20 15:08:06 +01:00
Luke Benstead
21ad46ad94 Make it clear that some things aren't yet implemented 2018-09-20 15:02:22 +01:00
Luke Benstead
baf7cf5bdd Stub out glColorTableEXT 2018-09-20 15:01:13 +01:00
Luke Benstead
52e1be498e Keep header pointer updated. Fixes #25 (hopefully...) 2018-09-19 17:11:56 +01:00
Luke Benstead
e36f561ec0 Improve check 2018-09-15 17:41:58 +01:00
Luke Benstead
6aadc1124f Fix another zclipping bug 2018-09-15 17:38:42 +01:00
Luke Benstead
bc2fb6b658 Fix a clipping bug 2018-09-15 16:03:21 +01:00
Luke Benstead
7100ebe5a9 Prefix some non-static private methods 2018-09-15 11:45:38 +01:00
Luke Benstead
6cfccbd20d Inline + Static some lighting functions 2018-09-15 11:42:56 +01:00
Luke Benstead
e68c051991 Add missing glColorMaterial definition 2018-09-15 11:42:42 +01:00
Luke Benstead
17c9699966 More clipping fixes 2018-09-08 20:53:28 +01:00
Luke Benstead
06b065dc7e Return the correct count from clip 2018-09-06 20:08:55 +01:00
Luke Benstead
93af697092 Don't include the header in startOffset 2018-09-06 20:00:18 +01:00
Luke Benstead
d9fa69c288 Fix invalid memory access bug 2018-09-06 19:46:04 +01:00
Luke Benstead
b4539443f5 Allow toggling debug logging 2018-09-06 19:45:52 +01:00
Luke Benstead
e82646faff Remove old clipping code 2018-09-06 19:22:25 +01:00
Luke Benstead
af54c96ff4 Implement new culling algorithm, still some issues when GL_CULL_FACE is enabled 2018-09-06 19:19:00 +01:00
Luke Benstead
517d21b487 Begin implementing a new clipping algorithm 2018-09-03 21:48:42 +01:00
Luke Benstead
19491173e5 Set registers correctly before using store queues.
Fixes #23
2018-09-03 20:47:24 +01:00
Luke Benstead
55b3aa4ddd Fix up twiddled formats with alpha 2018-08-28 17:51:33 +01:00
Luke Benstead
963eeb54da Start work on spotlights 2018-08-28 15:55:50 +01:00
Luke Benstead
c191ced3f9 Fix issues with directional lights 2018-08-28 09:24:51 +01:00
Luke Benstead
acaecf49bc Add a missing header 2018-08-27 21:35:15 +01:00
Luke Benstead
8b3bf5a579 Fix lighting wrapping 2018-08-27 21:35:07 +01:00
Luke Benstead
8ef04be966 Try to fix directional lights 2018-08-27 20:54:20 +01:00
Luke Benstead
b29303fb6c Implement glColorMaterial 2018-08-22 09:24:49 +01:00
Luke Benstead
21f8f9d855 Properly restore state after glEnd 2018-08-21 16:15:43 +01:00
Luke Benstead
9b0322ce8a Properly restore enabled client state when using immediate mode 2018-08-21 16:08:06 +01:00
Luke Benstead
edae8a9166 Properly pop active client texture in immediate mode 2018-08-21 15:50:59 +01:00
Luke Benstead
25de48b3f6 Fix a bug where only one texture would bind 2018-08-21 15:50:41 +01:00
Luke Benstead
8b834ac3f1 Avoid an additional copy of every vertex. Fixes #22 2018-08-21 09:37:19 +01:00
Luke Benstead
bccd1aa788 Start refactoring the submission process 2018-08-20 21:19:12 +01:00
Luke Benstead
80c65d4aff Remove conditional header sending, it's slightly slower 2018-08-20 20:34:11 +01:00
Luke Benstead
da97483eee Switch to using 4-byte colours internally rather than floats
These are stored in BGRA format so they can be directly cast to a uint32_t to get the
correct format for the argb param in pvr_vertex_t (yay endianess)

This results in a performance improvement as it reduces the data requirements.
2018-08-20 09:28:30 +01:00
Luke Benstead
26bd8df37c Fix some bugs with mipmaps + compressed textures 2018-08-20 08:34:54 +01:00
Luke Benstead
25e4518501 Performance optimisations 2018-08-19 21:10:42 +01:00
Luke Benstead
348e09b4aa Further optimisations 2018-08-17 21:40:27 +01:00
Luke Benstead
37ba9bf3c3 Mark mipmap levels as complete when generated 2018-08-16 17:53:39 +01:00
Luke Benstead
ba66608a96 Add a basic profiler and optimise some code 2018-08-16 17:51:15 +01:00
Luke Benstead
7d1b57fb12 Handle GL_RED -> GL_RED 2018-08-14 15:55:03 +01:00