~ crosscore is a portable C++ library for graphics programming ~
The library itself is independent from rendering interfaces such as OpenGL or Vulkan,
instead it is conceived as a set of tools to help with creating experimental renderers.
Model and texture resources, animation playback, collision detection are examples
of utilities that crosscore provides.
The library is essentially dependency-free and consists of a pair of source files:
crosscore.cpp
and
crosscore.hpp
A portable OpenGL system interface is included as a separate module (see OGLSys sources), but crosscore itself has no dependencies on this code and can be used with any similar library.
A sample OpenGL renderer is included in this repository, as well as some demo programs. The renderer targets WebGL1 level graphics, so it's very portable albeit rather conservative in terms of visual effects.
~ Here is online demo. ~
It is one the included demo programs compiled to WebAssembly,
a kind of a mock-up adventure game. Here you can move the player character around,
interact with some elements in the scene and talk to NPCs
(all the text in this demo is in imaginary language).
(Scaled-down version of this demo is
here,
it is more suitable for devices such as Raspberry Pi.)
Here is another project
that is using this library
☆ Ostinato ☆
Another sample program and a walkthrough of implementing a very simple OpenGL renderer. (Work in progress!)