candlewick 0.10.0
A tiny cross-platform renderer based on SDL3
Loading...
Searching...
No Matches
Core.h
Go to the documentation of this file.
1#pragma once
2
3#include <coal/fwd.hh>
4#include <cassert>
5#include <concepts>
6
7#define CANDLEWICK_ASSERT(condition, msg) assert(((condition) && (msg)))
8
9namespace candlewick {
10struct Camera;
11class CommandBuffer;
12struct Device;
13class GraphicsPipeline;
14class Texture;
15class Mesh;
16class MeshView;
17class MeshLayout;
18struct Shader;
19struct RenderContext;
20struct Window;
21
22struct DirectionalLight;
23
24using coal::AABB;
25
29template <typename T>
30concept Scene = requires(T t, CommandBuffer &cmdBuf, const Camera &camera) {
31 { t.update() } -> std::same_as<void>;
32 { t.render(cmdBuf, camera) } -> std::same_as<void>;
33 { t.release() } -> std::same_as<void>;
34};
35
36} // namespace candlewick
Definition CommandBuffer.h:16
The Scene concept requires that there exist functions to render the scene. Provided a command buffer ...
Definition Core.h:30
Definition Camera.h:8
The main way of using a camera to render things.
Definition Camera.h:19