Commit Graph

32 Commits

Author SHA1 Message Date
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
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
ba66608a96 Add a basic profiler and optimise some code 2018-08-16 17:51:15 +01:00
Luke Benstead
021237f258 Fix a number of issues with texture loading 2018-08-14 09:49:31 +01:00
Luke Benstead
6942e597f4 Untested multitexture implementation 2018-08-04 21:00:26 +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
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
cdef5972f5 Fix bug when clipping triangle strips 2018-07-15 19:48:56 +01:00
Luke Benstead
81b52e7a18 Finish initial pass at a zclipping implementation 2018-07-14 21:54:43 +01:00
Luke Benstead
5387734e6c Implement z clipping for the single-vertex case 2018-07-10 19:48:25 +01:00
Luke Benstead
e90b5e424a Fix up triangle strip rendering 2018-07-09 19:00:50 +01:00
Luke Benstead
ae335eeff1 Large refactor of vertex submission
This should be much faster as matrix loading is now minimized. Also splits transform from perspective divisionn
to lay the groundwork for near-z clipping. This also fixes GL_POLYGON submission.

Lighting can be made faster, this doesn't change the lighting algorithm, but the matrix changes should speed things up.
2018-07-09 08:57:01 +01:00
Luke Benstead
a8d5d2f506 Add NeHe lesson 3, and a Vertex Array version of lesson 2 2018-05-29 17:02:57 +01:00
Luke Benstead
b6b1591010 Add the first nehe sample and make it work 2018-05-29 13:12:38 +01:00
Luke Benstead
396ea82856 Drop all of the old libGL files 2018-05-20 16:16:53 +01:00
Luke Benstead
23e564269b Fix lighting bugs 2018-05-19 09:17:24 +01:00
Luke Benstead
f9cdefcd81 Replace the entire matrix stack handling to work towards fixing lighting 2018-05-16 21:00:41 +01:00
Luke Benstead
4218111ab8 Make things C89 friendly 2018-05-14 17:10:53 +01:00
Luke Benstead
ab11a02056 Diffuse should be ignored if lighting is enabled 2018-05-13 09:00:38 +01:00
Luke Benstead
97f4e020ad Rename experimental and update the Makefile 2018-05-12 21:06:22 +01:00