Skip to content

Repository files navigation

Situation logo

Situation

Advanced Platform Awareness, Control, and Timing

(c) 2025-2026 Jacques Morel — MIT Licensed

Situation is a single-file, cross-platform C11 library providing unified, low-level access to windowing, graphics (OpenGL 4.6 / Vulkan 1.4), audio, input, filesystem, threading, and timing.


Documentation

Document Description
Introduction What Situation is, getting started, build configuration, language wrappers, FAQ
Architecture Internal design, threading model, audio graph, GL/VK backend lifecycles
Compilation Guide Application build reference (linking, flags, platforms, language wrappers)
Building the Library Full reference for building situation itself (Makefile, targets, Vulkan SDK, shaderc)
SDK Reference Primary technical reference manual
API Guide All functions, structs, and enums with usage examples
What's New Recent features and roadmap completions
Update Log Full version history

Build scripts live in build/ — quick-reference for all build targets. Code generation and binding tools live in tools/.


Quick Start

#define SITUATION_IMPLEMENTATION
#define SITUATION_USE_OPENGL
#include "situation.h"

int main(int argc, char** argv) {
    SituationInitInfo cfg = { .window_width = 1280, .window_height = 720,
                              .window_title = "Hello Situation" };
    if (SituationInit(argc, argv, &cfg) != SITUATION_SUCCESS) return -1;

    while (!SituationWindowShouldClose()) {
        SITUATION_BEGIN_FRAME();
        if (SituationAcquireFrameCommandBuffer()) {
            // record render commands here
            SituationEndFrame();
        }
    }

    SituationShutdown();
    return 0;
}

Build against the pre-built static lib — no need to recompile the library:

build\build_situation.bat static-opengl
build\build_examples.bat  static-opengl hello_situation

See Introduction for the full getting-started walkthrough and Compilation Guide for all build targets.


License

MIT — see LICENSE.

About

The "Situation" Advanced Platform Awareness, Control, and Timing

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages