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
Luke Benstead
021237f258
Fix a number of issues with texture loading
2018-08-14 09:49:31 +01:00
Luke Benstead
dca991ffe3
Fix a number of minor issues with textures
2018-08-13 09:19:16 +01:00
Luke Benstead
e7cd91a91f
Try to match GL filtering with PVR filtering
2018-08-09 09:32:29 +01:00
Luke Benstead
5c190c1095
Implement glGenerateMipmapEXT
2018-08-09 08:56:43 +01:00
Luke Benstead
c6ba127bc9
Always allocate room for mipmaps
2018-08-08 16:50:09 +01:00
Luke Benstead
4c99dd740a
Add support for mipmapped compressed textures
2018-08-08 09:50:57 +01:00
Luke Benstead
b06f6116c8
Detect multiple mipmap levels being uploaded to glCompressedTexImage2D
2018-08-08 08:45:25 +01:00
Luke Benstead
86dd5dd2b2
glCompressedTexImage2D is an ARB extension in OpenGL 1.2.1
2018-08-07 20:49:10 +01:00
Luke Benstead
c40d3a007d
Implement support for GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB and GL_COMPRESSED_TEXTURE_FORMATS_ARB
2018-08-07 20:46:26 +01:00
Luke Benstead
16d949bfbc
Clean up compressed texture constants and code
2018-08-07 20:22:44 +01:00
Luke Benstead
0b91c20bbd
Add support for getting the max texture size
2018-08-07 08:45:24 +01:00
Luke Benstead
85d4bb5ec3
Fix directional lighting bug
2018-08-05 14:38:04 +01:00
Luke Benstead
582a29d267
Add glMultiTexCoord2fARB
2018-08-05 09:09:38 +01:00
Luke Benstead
6942e597f4
Untested multitexture implementation
2018-08-04 21:00:26 +01:00
Luke Benstead
db0d39d487
Cleanup lighting code a bit
2018-08-04 19:34:07 +01:00
Luke Benstead
59002546e6
Fix lighting
2018-08-03 14:08:01 +01:00
Luke Benstead
0bf023b8df
Fix a bug where headers weren't sent to a list
2018-08-02 19:56:50 +01:00
Luke Benstead
9371a8164f
Don't send headers unnecessarily
2018-08-01 20:41:59 +01:00
Luke Benstead
4716a6a0c0
Cleanups and optimisations
2018-08-01 17:57:31 +01:00
Luke Benstead
39ac10af00
Simplify colour handling
2018-08-01 12:00:56 +01:00
Luke Benstead
bebca59796
Allow toggling z clipping
2018-08-01 11:32:07 +01:00
Luke Benstead
31e666c77a
Implement support for GL_UNSIGNED_INT indices
2018-08-01 11:08:51 +01:00
Luke Benstead
47d3c0f478
Minor optimisations
2018-08-01 09:57:44 +01:00
Luke Benstead
02b4b2d438
Fix clipping errors when multiple strips submitted
2018-07-31 09:32:55 +01:00
Luke Benstead
720206810d
Use a smaller near plane value (for now)
2018-07-16 09:01:11 +01:00
Luke Benstead
60c49f708e
Clip using the w coordinate
2018-07-16 08:42:15 +01:00
Luke Benstead
0d921c3504
Tweaks to clipping
2018-07-15 21:27:15 +01:00
Luke Benstead
8ef63c75af
'Fix' compiling on platforms other than the DC
2018-07-15 20:44:43 +01:00