-
Notifications
You must be signed in to change notification settings - Fork 0
Home
VCK stands behind you and hands you things when you need them. It never reaches over your shoulder and touches anything you didn't ask for. Default cfg: a reliable V6. Full cfg: V8 with a supercharger. Same engine underneath. Every knob that's off costs zero.
#include "VCK.h"That's the whole include surface.
| You want to… | Read |
|---|---|
| Build the repo and see something on screen | Quick Start |
| Walk through a working app, line by line | Your First App |
Understand every cfg knob |
Understanding cfg |
| Load shaders, declare a vertex layout, push constants | Guides · Shaders |
| Render a scene with multiple meshes | Guides · Scene |
| Add a free-look camera (yaw / pitch / GLFW) | Guides · Flying Camera |
| Drop a textured ground plane | Guides · Flat Plane |
| Build a capsule for a character proxy | Guides · Capsule |
| Wire step + jump physics | Guides · Step & Jump |
| Look up a class signature | Core API · Expansion API · Execution Layer · VMM |
| Browse copy-paste recipes | Cookbook |
| See what every example demonstrates | Examples |
| Compile on Windows / Linux / macOS | Build |
| Read the design rules | Design |
core/ VkInstance, VkDevice, VkSwapchainKHR, VkPipeline, VkCommandPool, VkSync
↓
expansion/ meshes, textures, depth, framebuffers, descriptors, VertexLayout, PushConstants, Primitives
↓
execution/ FrameScheduler, JobGraph, GpuSubmissionBatcher, DebugTimeline
↓
vmm/ (optional) staging ring, transient pool, persistent pool, lifetime tags
↓
your renderer
Each layer only depends on the layers above it. Expansion never touches execution. Core never touches expansion. Skip whichever layers you don't want — every uninitialised module costs zero (rule 19).
Init Window → Context → Device → Swapchain → Pipeline → Command → Sync → expansion → frame loop
Shutdown ← reverse order
vkDeviceWaitIdle is correct exactly once: at shutdown. The runtime hot path never calls it (rule 4). Resize uses HandleLiveResize; the scheduler-aware overload drains via FrameScheduler::DrainInFlight so independent compute / transfer queues keep moving.
VCK.h is the single source of truth for the public API. The wiki is the friend; VCK.h is the spec.
- Home
- Quick Start
- Your First App
- Understanding cfg
- Build — Windows / Linux / macOS
Single source of truth for the full API surface is the doc block at the top of VCK.h.