Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Recent Activity

2023-06-30
2023-06-27
2023-06-12

Side Bar

Saffron development roadmap

Current version as of this writing is 0.9/1.0rc

See also ReleaseProcess for how to perform a release of Saffron.

Features/Changes/Bugfixes planned for 1.0

  • gl2 matrix specification should match mmath (row-major) DONE
  • shader support for gl2 and at least one demo DONE
  • update glow to use xkbcommon keysym code DONE

Features/Changes/Bugfixes planned for 1.1

Version 1.1 will mostly be focused on finishing and integrating support for OpenGL 4 and the software renderer

  • Software renderer
  • gl4 module full implementation

Features/Changes/Bugfixes planned for 1.2

Version 1.2 should be focused primarily on support work needed for further platforms. The only current saffron_window implementation uses Glow, which is designed for desktop usage. This will not work well on OS X or Android where graphics are run using a delegate model. For that, an asynchronous, lambda-based windowing module will need to be written. As a baseline, this should also work with GLFW, which can be used from C or Java (using lwjgl).

  • Asynchronous windowing support (Android, GLFW, OS X, etc)
  • Java build support using lwjgl and ant build system

Features/Changes/Bugfixes planned for 1.3

Version 1.3 is intended to include the unified shader language from version 2.1, but backported to the 1.x API. Additionally, any fixes/improvements that can be taken from 2.0 and 2.1 that are not dependent on moving the GL module out of the saffron module may be backported to 1.3

  • Unified, s-expression based shader language that translates to GLSL or HLSL

Features/Changes/Bugfixes planned for 2.0

API-breaking changes are being pushed out to version 2.0. Not all platforms will have full OpenGL 2 (for instance, Android/iOS which use GL ES/Vulkan/Metal, etc), or it might be undesirable to link to OpenGL at all times. Eventually a DirectX backend should also be implemented. For these reasons, the OpenGL implementation should not be a submodule of saffron itself, but work similar to the saffron_window module. This will also be the final change needed for

  • OpenGL and other backends should be separated into their own top-level modules (saffron.gl should become saffron_gl, saffron.gl2 should become saffron_gl.gl2, etc)
  • Android implementation of asynchronous windowing support
  • GL ES backend implementation

Features/Changes/Bugfixes planned for 2.1

With OpenGL out of the core, a shared shader frontend will be even more important. We already have well-tested libraries for parsing in Mercury, and compiling to GLSL and HLSL should not be too difficult. Ideally we want a full pipeline to compile to HLSL ASM and SPIRV+GLSL, but SPIRV in particular should not be depended on to exist, and the source-to-source translators will be an easier intermediate step for prototyping the language.

  • Unified, s-expression based shader language that translates to GLSL or HLSL