sead
Loading...
Searching...
No Matches
aglRenderBuffer.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadBuffer.h>
4#include <container/seadSafeArray.h>
5#include <gfx/seadFrameBuffer.h>
6#include <heap/seadDisposer.h>
7#include <math/seadVector.h>
8
9namespace agl {
10
13
14class RenderBuffer : public sead::IDisposer, public sead::FrameBuffer
15{
17
18public:
20 RenderBuffer(const sead::Vector2f& virtual_size, const sead::BoundBox2f& physical_area);
21 RenderBuffer(const sead::Vector2f& virtual_size, f32 physical_x, f32 physical_y, f32 physical_w, f32 physical_h);
22 ~RenderBuffer() override;
23
24private:
25 void initialize_();
26
27public:
28 void copyToDisplayBuffer(const sead::DisplayBuffer* display_buffer) const override;
29 void clear(u32 clr_flag, const sead::Color4f& color, f32 depth, u32 stencil) const override;
30 void bindImpl_() const override;
31
32 RenderTargetColor* getRenderTargetColor(u32 target_index = 0) const
33 {
34 return mColorTarget[target_index];
35 }
36
41
42 void setRenderTargetColor(RenderTargetColor* target, u32 target_index = 0)
43 {
44 mColorTarget[target_index] = target;
45 }
46
48 {
49 mDepthTarget = target;
50 }
51
54
55 void clear(u32 target_index, u32 clr_flag, const sead::Color4f& color, f32 depth, u32 stencil) const;
56
57private:
60
62};
63static_assert(sizeof(RenderBuffer) == 0x50, "agl::RenderBuffer size mistmatch");
64
65}
Definition aglRenderBuffer.h:15
void bindImpl_() const override
Definition aglRenderBuffer.cpp:122
void clear(u32 target_index, u32 clr_flag, const sead::Color4f &color, f32 depth, u32 stencil) const
Definition aglRenderBuffer.cpp:45
void initialize_()
Definition aglRenderBuffer.cpp:22
void setRenderTargetColorNullAll()
Definition aglRenderBuffer.cpp:137
RenderBuffer()
Definition aglRenderBuffer.cpp:10
~RenderBuffer() override
Definition aglRenderBuffer.cpp:15
RenderTargetColor * getRenderTargetColor(u32 target_index=0) const
Definition aglRenderBuffer.h:32
static sead::Buffer< const RenderBuffer * > sBoundRenderBuffer
Definition aglRenderBuffer.h:61
RenderBuffer(const sead::Vector2f &virtual_size, f32 physical_x, f32 physical_y, f32 physical_w, f32 physical_h)
void setRenderTargetColor(RenderTargetColor *target, u32 target_index=0)
Definition aglRenderBuffer.h:42
void copyToDisplayBuffer(const sead::DisplayBuffer *display_buffer) const override
Definition aglRenderBuffer.cpp:28
void setRenderTargetDepthNull()
Definition aglRenderBuffer.h:53
void setRenderTargetDepth(RenderTargetDepth *target)
Definition aglRenderBuffer.h:47
RenderTargetDepth * mDepthTarget
Definition aglRenderBuffer.h:59
void clear(u32 clr_flag, const sead::Color4f &color, f32 depth, u32 stencil) const override
Definition aglRenderBuffer.cpp:40
RenderTargetDepth * getRenderTargetDepth() const
Definition aglRenderBuffer.h:37
sead::SafeArray< RenderTargetColor *, 8 > mColorTarget
Definition aglRenderBuffer.h:58
RenderBuffer(const sead::Vector2f &virtual_size, const sead::BoundBox2f &physical_area)
Definition aglRenderTarget.h:66
Definition aglRenderTarget.h:104
Definition seadBuffer.h:13
Definition seadFrameBuffer.h:134
Definition seadFrameBuffer.h:90
Definition seadDisposer.h:12
Definition seadSafeArray.h:19
Definition aglDisplayList.cpp:5
Definition seadAssert.h:44
Vector2< f32 > Vector2f
Definition seadVector.h:238
BoundBox2< f32 > BoundBox2f
Definition seadBoundBox.h:187
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
Definition seadColor.h:9