Commit Graph

68 Commits

Author SHA1 Message Date
Luke Benstead
62e001c288 Reimplement or refactor Texturing, State, and Drawing
Things working:
 - glDrawArrays / glDrawElements et al.
 - Texturing
 - Blending

Things missing:

 - Lighting
 - Multitexturing
 - Near Z-clipping
 - Framebuffer extension
 - Immediate mode
2018-05-11 15:39:28 +01:00
Luke Benstead
1356ae352c Begin experimental new renderig code 2018-05-05 20:38:55 +01:00
Luke Benstead
493c078b19 Replace the texture linked list with a new NamedArray container type 2018-05-02 09:31:24 +01:00
Luke Benstead
42d2a1e091 Refactor glTexImage2D and associated enums
- Enums now respect GLs defined ranges
- Short formats are now correctly supported
- Duplicated (and incorrect) enums removed
- New conversions supported
- Fixes a number of bugs
2018-05-01 09:07:09 +01:00
Luke Benstead
4653957c85 Make things compile under c99 2018-04-29 08:32:06 +01:00
Luke Benstead
2bff44ce6a Don't reset the client state when flushing arrays 2018-01-27 14:02:08 +00:00
Luke Benstead
bd80c9ae7f Add build and link targets to the makefile 2018-01-18 19:52:54 +00:00
Luke Benstead
3f364c6a12 Disable auto sorting features of PVR 2017-09-15 19:14:21 +01:00
Luke Benstead
100e6980a5 Move to a dynamically resizing vertex buffer 2017-09-15 13:11:10 +01:00
Luke Benstead
95b71c8291 Small cleanup 2017-09-15 10:21:17 +01:00
Luke Benstead
e616b0fb90 Remove the option for statically allocated buffers 2017-09-15 10:19:34 +01:00
Luke Benstead
ed05c5feb8 Make things a little more explicit in the depth write toggling 2017-09-14 19:43:33 +01:00
Luke Benstead
63aa2ec47c Check that textures are a power of two early rather than dying in PVR code 2017-07-23 21:11:29 +01:00
Luke Benstead
4bf579f7bc Replace custom glKosLightAmbientX functions with glLightModelfv 2017-07-23 18:58:57 +01:00
Luke Benstead
08417324eb Fix logging of glDrawElements errors 2017-07-22 21:19:10 +01:00
Luke Benstead
79b8e9af3c Simplify gl-error.c 2017-07-22 21:12:26 +01:00
Luke Benstead
6a4a6a157b Initialize KOS_GL_ERROR_CODE to zero 2017-07-22 17:40:53 +01:00
Luke Benstead
8a77a34a79 GL spec says that drawing without calling glEnableClientState(GL_VERTEX_ARRAY) is a no-op, not an error 2017-06-01 13:42:51 +01:00
Luke Benstead
c3a9877fdb Fix backface culling 2017-06-01 09:39:53 +01:00
Luke Benstead
824b7a64ab Fix a number of bugs with texture bindings 2017-06-01 09:32:28 +01:00
Luke Benstead
3a1f7d24d8 GLushort is required to store GL_CCW or GL_CW 2017-05-31 19:35:15 +01:00
Luke Benstead
1a80a70614 Implement gl(Enable|Disable)ClientState 2017-05-31 19:32:46 +01:00
Luke Benstead
f36fc72334 Default to CCW front faces 2017-05-31 19:22:38 +01:00
Luke Benstead
cdaee856cc Fix up normal stride 2017-05-31 14:34:43 +01:00
Luke Benstead
6829dcada4 Only enable multitexturing if a texture is bound to unit 1 2017-05-31 13:34:30 +01:00
Luke Benstead
1307f43bc5 Fix texture coordinate stride 2017-05-31 12:36:01 +01:00
Luke Benstead
5fef5546ee Take into account vertex stride when transforming positions 2017-05-31 11:17:55 +01:00
Luke Benstead
6aacdcf573 Fix start offset of glDrawArrays for colours and vertices 2017-05-31 11:12:34 +01:00
Luke Benstead
a51cedad79 Fix vertex stride 2017-05-31 11:07:28 +01:00
Luke Benstead
46b927fa8a Fix glColorPointer pointer arithmetic by using bytes consistently and properly calculating stride 2017-05-31 10:59:32 +01:00
Lawrence Sebald
a1185f3369 glIsEnabled(GL_CULL_FACE) should return the status of culling, not fog. 2017-05-23 09:11:52 -04:00
jlf65
c960b24f07 Handle change in texture parameters in glCompressedTexImage2D 2016-08-02 15:07:27 -06:00
jlf65
b897a2abad Handle change in texture parameters in glTexImage2D 2016-08-02 14:42:09 -06:00
Lawrence Sebald
30f408caa3 Fix a store-queue related issue in the primitive submission code.
The primitive list submission code in libgl never sets the QACR0 or QACR1
registers when it uses the store queues. Thus, if any other code accesses the
store queues, rendering may well grind to a halt.

This fixes the issue by setting QACR0 and QACR1 each frame.

Note: This solution is still not thread-safe. Of course, many GL implementations
are not thread-safe at all...
2016-07-02 23:37:04 -04:00
Lawrence Sebald
0fa6e42b55 Remove +x permissions bits... 2016-01-03 22:24:52 -05:00
Lawrence Sebald
9fc75b6772 Add glGetError() and gluErrorString(). 2016-01-03 22:23:32 -05:00
Josh Pearson
dd765f80d6 Foramt cleanup on gl-rgb.c 2015-09-09 11:45:09 -07:00
Josh Pearson
3df4244bc2 Formatting cleanup, and cleanup on gl-fog.c 2015-09-09 11:25:51 -07:00
Lawrence Sebald
46ed1d5353 Don't allocate texture conversion space on the stack, as it is likely to overflow the stack and corrupt heap memory. 2015-09-09 10:39:22 -04:00
Josh Pearson
5fce3e1897 Added Texture Format Conversion to glTexImage2D, Added GL_TEXTURE Matrix Transformations when glEnable(GL_KOS_TEXTURE_MATRIX), various bug fixes, few more API functions added 2015-09-06 09:47:57 -07:00
Lawrence Sebald
25ba67b9b1 Fix compilation inside the new kos-ports tree. 2015-05-08 22:35:16 -04:00
Josh Pearson
763ec99483 Added multi-texture support and glCompressedTexImage2D to the GL API 2015-01-04 15:07:57 -08:00
Josh Pearson
4af2c8aacc Added support for 2D vertices using glDrawArrays. Fixed a small bug in matrix transform stack. 2014-12-20 16:49:56 -08:00
Josh Pearson
8b276ca731 Fixed const pointer function definitions 2014-12-19 19:07:11 -08:00
Josh Pearson
2b37d7ba61 Fixed change that removed allignment on L vector on gl-light.c 2014-12-13 15:50:47 -08:00
Josh Pearson
704a46e8dc Fixed stride on glDrawArrays, clean up on lighting code, added glRect function 2014-12-13 15:17:57 -08:00
Lawrence Sebald
8c34258eb4 Make sure output parameters to _glKosSpotlight() are aligned to an 8-byte boundary. 2014-10-25 19:41:00 -04:00
Josh Pearson
97dc25918a First major update to the API 9-28-14 2014-09-28 19:40:41 -07:00
U-PH3NOM-PC\PH3NOM
b6e9ff70b5 Fixed bugs reported as of 9-06-2014 2014-09-07 15:41:26 -07:00
Lawrence Sebald
092a04cccf Ignore the noise... Just testing something. 2014-08-30 13:33:02 -04:00