Putting Shanghai on your desktop, hopefully. Because you know you want one.
The original artwork was found on Pixiv.
Code is derived from the Shimeiji application (Java). I also blame a certain someone for making me do this.
Inherently a Wayland application, so you got to have wayland-protocols installed. It'll use wayland-scanner to generate the necessary headers.
It's also CMake so you gotta do the usual cmake . && make dance.
There is also X11 support, and will be automatically handled by CMake if you are compiling within a X11 environment. In this scenario, GLFW will be used to handle window management and input events, with direct X11 manipulation of the window to handle input events.
There is also primitive code for running it on other platforms (running on GLFW), but it's not really tested. Debug it at your own risk. It handles Windows' z-order and window management, but not much else. macOS is also not supported, but it should be possible to run it on macOS with some modifications, like switching from OpenGLES to regular OpenGL.
- Rewrite into C++ from
layer-shell.c - Load images as GL textures (uses stb_image)
- Reverse engineer Shimeji's behavior
- Implement the animation/agent state machine
- Implement animation in EGL