diff options
Diffstat (limited to 'pipeline.cpp')
-rw-r--r-- | pipeline.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/pipeline.cpp b/pipeline.cpp new file mode 100644 index 0000000..30bf442 --- /dev/null +++ b/pipeline.cpp @@ -0,0 +1,29 @@ +#include "video.hpp" + +extern "C" { +#include "qstd/memory.h" +#include "qstd/plat.h" +} + +Pipeline_Builder::Pipeline_Builder(Arena* arena): + arena(arena) {} + +void Pipeline_Builder::begin_rp() { + pass = (Render_Pass*)arena_alloc(arena, sizeof *pass); + pass->target = 0; + pass->clear = { 0, 0, 0, 0 }; +} + +void Pipeline_Builder::rp_target(Texture_Id id, Colour clear) { + pass->target = id; + pass->clear = clear; +} + +void Pipeline_Builder::validate_rp() { + assert(pass->target); +} + +Render_Pass& Pipeline_Builder::build_rp() { + validate_rp(); + return *pass; +} |