mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-30 12:35:12 +00:00
60 lines
1.5 KiB
C++
60 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include <basis/seadTypes.h>
|
|
#include <common/aglGPUMemBlock.h>
|
|
|
|
#include "Library/HostIO/HioNode.h"
|
|
#include "Library/Layout/IUseLayout.h"
|
|
#include "Library/Layout/IUseLayoutAction.h"
|
|
|
|
namespace nn::ui2d {
|
|
class DrawInfo;
|
|
}
|
|
|
|
namespace agl {
|
|
class TextureData;
|
|
class RenderBuffer;
|
|
class RenderTargetColor;
|
|
class DrawContext;
|
|
} // namespace agl
|
|
|
|
namespace al {
|
|
class TextureReplacer;
|
|
class LayoutInitInfo;
|
|
|
|
class LayoutTextureRenderObj : public HioNode, public IUseLayout, public IUseLayoutAction {
|
|
public:
|
|
LayoutTextureRenderObj(const char* name, const LayoutInitInfo& initInfo,
|
|
const char* archiveName, const char*);
|
|
|
|
void destroy();
|
|
void updateLayout();
|
|
void requestRenderTexture();
|
|
void drawToTexture() const;
|
|
|
|
const char* getName() const override { return mName; }
|
|
|
|
LayoutKeeper* getLayoutKeeper() const override { return mLayoutKeeper; }
|
|
|
|
LayoutActionKeeper* getLayoutActionKeeper() const override { return mLayoutActionKeeper; }
|
|
|
|
private:
|
|
const char* mName;
|
|
bool mIsAlreadyRendered;
|
|
u32 mWidth;
|
|
u32 mHeight;
|
|
agl::TextureData* mTextureData;
|
|
u32 mTextureStorageSize;
|
|
agl::GPUMemBlock<u8> mTextureStorage;
|
|
LayoutKeeper* mLayoutKeeper;
|
|
LayoutActionKeeper* mLayoutActionKeeper;
|
|
agl::RenderBuffer* mRenderBuffer;
|
|
agl::RenderTargetColor* mRenderTargetColor;
|
|
TextureReplacer* mTextureReplacer;
|
|
agl::DrawContext* mDrawContext;
|
|
nn::ui2d::DrawInfo* mDrawInfo;
|
|
};
|
|
|
|
static_assert(sizeof(LayoutTextureRenderObj) == 0xa8);
|
|
} // namespace al
|