OffscreenRenderTarget.h
OffscreenRenderTarget.h
CPP1/* Copyright Statement:2 *3 * (C) 2021-2024 Cubios Inc. All rights reserved.4 */56#pragma once7#include "SceneObject.h"8#include "Screen.h"9#include <string>1011namespace Cubios12{13namespace Gfx14{15class OffscreenRenderTarget: public Cubios::SceneObject16{17public:18 enum renderLayerOrder_t19 {20 BeforeQueue = 0,21 AfterQueue = 122 };2324 OffscreenRenderTarget(u32_t width, u32_t height, Cubios::GFX_PixelFormat_t format);25 virtual ~OffscreenRenderTarget();2627 Cubios::SceneObject* Add(Cubios::SceneObject* obj);28 Cubios::SceneObject* AddCopy(Cubios::SceneObject* obj);2930 void Begin(bool overwrite=false);31 void End();3233 void Render() override;34 virtual void RenderLayer(renderLayerOrder_t order){}3536private:37 void present();38 int16_t getNextID() {return rtc = (rtc+1) % 0xffff; }3940private:41 uint32_t width;42 uint32_t height;43 Cubios::GFX_PixelFormat_t format;4445 std::vector<Cubios::SceneObject*> objects;46 std::vector<Cubios::SceneObject*> copies;4748 bool inBegin;49 bool beforeQueue;5051 Cubios::Screen* nullScreen;5253 int16_t rtID;54 static int16_t rtc;55};56}57}58
Wrapped for easier reading. Turn wrap off to inspect exact line lengths.