Skip to content

v0.03 3D wireframe rendering, streams, and strings

Pre-release
Pre-release
Compare
Choose a tag to compare
@oculometric oculometric released this 14 Mar 18:37
· 45 commits to main since this release

this update contains:

  • several demo UI panels, including a star renderer, and memory manager visualiser
  • 3D wireframe rendering of arbitrary 3D models
  • loading of 3D models from .binmesh files, and pre-compilation conversion into binmesh format from obj
  • 4D vector maths, and 2/3/4D matrix maths
  • internal mesh format
  • nov_strings, dynamic string functionality, built on nov_array
  • much larger upper limit for things loaded from disk by the bootloader
  • nov_streams, making it easy to pass data onto other objects with the C++-style target << data format
  • serial output now uses streams so you can easily do com_1 << "Hello" << stream::endl
  • stream support for conversion to char*s for text output: uintX_t (as hex, dec, bin), intX_t, float, nov_vector2, nov_vector3, nov_vector4, nov_matrix2_2, nov_matrix3_3, nov_matrix4_4, and any more that i feel like implementing a << operator for
  • improved project structure
  • assembly implementation of sinf, cosf, tanf, sqrt, etc.
  • lots and lots of small bugfixes, including with memory management nov_array, nov_gui_manager

if you have qemu-system-x86_64 or qemu-system-i386 installed, i highly recommend giving this one a try! 3D and 2D graphics demo. i have again, yet to start properly documenting stuff beyond reasonably comprehensive commenting.