Releases: rswinkle/PortableGL
0.100.0
It's been 6 months and over 100 commits since the last release, which is
definitely an improvement over prior releases. There are several major changes
and additions since the last release both to PortableGL itself and the project
more broadly. I'll try to summarize them below.
PortableGL Library Changes
- Change from runtime to compile time pixel format selection (like TinyGL) which
- ...means PGL supports arbitrary 32- and 16-bit color buffer formats
- Add PGL_D24S8, a combined 24-bit depth/8-stencil format (default)
- Add PGL_D16, which gives separate 16-bit depth and 8-bit stencil
- Add PGL_NO_STENCIL to turn stencil off entirely with PGL_D16
- Add PGL_NO_DEPTH_NO_STENCIL to get have only the color buffer
- Add predefined memory configurations
- Add/Fix default textures (0) so there's one per target
- Add test suites for new configurations
- Add a few new individual tests as well as some fixes to existing tests
- Add some new GL functions, mostly to do with texture parameters
- Add GLSL texelFetch[1-3]D() functions
- Add several pgl extension functions, including some for making rendering to a texture slightly more convenient
- Major refactoring of crsw_math (included in PGL)
- Add a couple more stubs
- Fix many, many bugs and minor issues
PortableGL Project Changes
- Ported the 16 LearningWebGL.com lessons as a nice complete example set
- Completely reorganized the examples folder and rewrote the README to be worthy of the effort involved in the webgl ports, ha
- Many upgrades/changes/fixes to glcommon libraries including...
- ...the aforementioned major rework and refactoring of crsw_math (it is a library on its own, not just part of PGL)
- Update GLM and IMGUI
- Add non-SDL2 sample/starter programs in backends/
- currently 2 variants using x11's xlib
- 2 for win32
Probably more things that I'm forgetting but hopefully that's most of it.
If you'd like to help support PortableGL development or just like shader art, I'm developing a PortableGL based shadertoy application and am launching a crowdfunding campaign next week. Many fixes and additions in this release were made during and for that project which is always fun and rewarding. You can see a video of its current state as of now here
As always, let me know if you run into any bugs or have any other problems or suggestions
0.99.0
Once again it's been well over a year (and 66 commits) since the last official PortableGL release. There's no particular reason for me to create this release now other than that. There have been a few important changes since 0.98.0, but hopefully most people have already been using the latest version rather than the last tagged release.
In rough order of most noteworthy to least, here are some changes that I noticed glancing over the log:
- Add PGL_UNSAFE macro that removes all error checking if defined (portablegl_unsafe.h removed as no longer necessary).
- Add glDebugMessageCallback(). Default messages output by default when PGL_UNSAFE is not defined; basically PGL is in a "debug context" by default.
- Add glColorMask() along with disabling macro PGL_DISABLE_COLOR_MASK
- Added a few other gl functions
- Add PGLDEF macro to allow for user defined prototype attributes (static, extern, __declspec(dllexport) etc)
- Remove a bunch of compiler warnings
- Use GL types more consistently in public APIs
- Add more stub functions
- Minor fixes/typos
- Added documentation
This should also help people using clib/homebrew who probably default to grabbing the latest release rather than the HEAD. I also wanted to get this out now because I want to make some more serious changes later and wanted a good cut off point. As always, let me know if you run into any bugs or problems, thanks.
0.98.0
Well it's been over 14 months since 0.97.1 and a lot has happened with PortableGL in that time. Out of 177 commits, here are the highlights of changes/improvements:
- New standard shader library for convenience in common use cases. See ex1_std_shaders.c and ex2_std_shaders.c
- Support other texture formats (besides RGBA) by automatically converting them (configurable
- Support other vertex attribute types besides float (everything but double currently).
- New and improved wide line algorithm (AA lines aka GL_LINE_SMOOTH is still a TODO though)
- Early Z and Stencil testing when the fragment shader doesn't modify Z or discard any pixels
- Several API and quality of life improvements/conveniences
- Improved documentation (always more to do of course)
- Many more OpenGL functions and features supported including many OpenGL ES 2/3 features.
- Many many more regression tests, as well as new performance tests.
- Many many bug fixes and minor improvements/code cleanup (always more to do)
Thanks to Aeronix for sponsoring a huge chunk of those changes in Sep-Oct '23.