1#ifndef SEAD_GRAPHICS_H_
2#define SEAD_GRAPHICS_H_
4#include <heap/seadDisposer.h>
5#include <thread/seadCriticalSection.h>
196 setViewportImpl(x, y, w, h);
201 setScissorImpl(x, y, w, h);
232 setBlendFactorMRTImpl(target, src_factor, dst_factor, src_factor, dst_factor);
237 setBlendFactorMRTImpl(target, src_factor_rgb, dst_factor_rgb, src_factor_a, dst_factor_a);
252 setBlendEquationMRTImpl(target, equation, equation);
257 setBlendEquationMRTImpl(target, equation_rgb, equation_a);
280static_assert(
sizeof(
Graphics) == 0x54,
"sead::Graphics size mismatch");
Definition seadCriticalSection.h:13
Definition seadGraphics.h:17
static void setInstance(Graphics *impl)
Definition seadGraphics.h:152
static DevicePosture sDefaultDevicePosture
Definition seadGraphics.h:275
void setBlendEquationSeparateMRT(u32 target, BlendEquation equation_rgb, BlendEquation equation_a)
Definition seadGraphics.h:255
void setViewportRealPosition(f32 x, f32 y, f32 w, f32 h)
Definition seadGraphics.h:194
virtual void setBlendEquationImpl(BlendEquation equation_rgb, BlendEquation equation_a)
virtual void setBlendEnableImpl(bool enable)
virtual void setDepthFuncImpl(DepthFunc func)
DepthFunc
Definition seadGraphics.h:44
BlendEquation
Definition seadGraphics.h:89
virtual void setScissorImpl(f32 x, f32 y, f32 w, f32 h)
virtual void lockDrawContextImpl()
CriticalSection mContextCriticalSection
Definition seadGraphics.h:271
void setAlphaTestEnable(bool enable)
Definition seadGraphics.h:260
void setDepthEnable(bool test_enable, bool write_enable)
Definition seadGraphics.h:204
static f32 getDefaultDeviceZScale()
Definition seadGraphics.h:36
s32 mContextRefCounter
Definition seadGraphics.h:270
static Graphics * instance()
Definition seadGraphics.h:151
static const u32 cRenderTarget_Num
Definition seadGraphics.h:32
void setBlendEquationMRT(u32 target, BlendEquation equation)
Definition seadGraphics.h:250
StencilFunc
Definition seadGraphics.h:114
static f32 sDefaultDeviceZScale
Definition seadGraphics.h:276
virtual void setDepthWriteEnableImpl(bool enable)
virtual void unlockDrawContextImpl()
static Graphics * sInstance
Definition seadGraphics.h:273
PolygonMode
Definition seadGraphics.h:142
static f32 getDefaultDeviceZOffset()
Definition seadGraphics.h:37
virtual void setStencilTestEnableImpl(bool enable)
void setScissorRealPosition(f32 x, f32 y, f32 w, f32 h)
Definition seadGraphics.h:199
virtual void setStencilTestFuncImpl(StencilFunc func, s32 ref, u32 mask)
virtual void setPolygonModeImpl(PolygonMode front, PolygonMode back)
AlphaFunc
Definition seadGraphics.h:100
Graphics()
Definition seadGraphics.cpp:14
void setBlendEquation(BlendEquation equation)
Definition seadGraphics.h:240
virtual bool setVBlankWaitIntervalImpl(u32 interval)
virtual void setViewportImpl(f32 x, f32 y, f32 w, f32 h)
Thread * mContextHolderThread
Definition seadGraphics.h:269
static f32 sDefaultDeviceZOffset
Definition seadGraphics.h:277
StencilOp
Definition seadGraphics.h:128
virtual void setAlphaTestFuncImpl(AlphaFunc func, f32 ref)
virtual void setColorMaskImpl(bool r, bool g, bool b, bool a)
virtual void setBlendConstantColorImpl(const Color4f &color)
Graphics(const Graphics &)
virtual void setAlphaTestEnableImpl(bool enable)
static DevicePosture getDefaultDevicePosture()
Definition seadGraphics.h:35
virtual void initializeImpl()
virtual void setBlendFactorImpl(BlendFactor src_factor_rgb, BlendFactor dst_factor_rgb, BlendFactor src_factor_a, BlendFactor dst_factor_a)
void unlockDrawContext()
Definition seadGraphics.cpp:54
void setBlendEnable(bool enable)
Definition seadGraphics.h:215
void setDepthFunc(Graphics::DepthFunc func)
Definition seadGraphics.h:210
virtual void setBlendEnableMRTImpl(u32 target, bool enable)
void initialize()
Definition seadGraphics.cpp:24
virtual void waitForVBlankImpl()
virtual void setBlendEquationMRTImpl(u32 target, BlendEquation equation_rgb, BlendEquation equation_a)
virtual void setBlendFactorMRTImpl(u32 target, BlendFactor src_factor_rgb, BlendFactor dst_factor_rgb, BlendFactor src_factor_a, BlendFactor dst_factor_a)
void setBlendFactorSeparate(BlendFactor src_factor_rgb, BlendFactor dst_factor_rgb, BlendFactor src_factor_a, BlendFactor dst_factor_a)
Definition seadGraphics.h:225
virtual void setColorMaskMRTImpl(u32 target, bool r, bool g, bool b, bool a)
virtual void setDepthTestEnableImpl(bool enable)
BlendFactor
Definition seadGraphics.h:68
virtual void setCullingModeImpl(CullingMode mode)
void setBlendFactorMRT(u32 target, BlendFactor src_factor, BlendFactor dst_factor)
Definition seadGraphics.h:230
void setBlendEquationSeparate(BlendEquation equation_rgb, BlendEquation equation_a)
Definition seadGraphics.h:245
void setBlendFactorSeparateMRT(u32 target, BlendFactor src_factor_rgb, BlendFactor dst_factor_rgb, BlendFactor src_factor_a, BlendFactor dst_factor_a)
Definition seadGraphics.h:235
CullingMode
Definition seadGraphics.h:58
~Graphics() override
Definition seadGraphics.cpp:20
DevicePosture
Definition seadGraphics.h:20
@ cDevicePosture_Invalid
Definition seadGraphics.h:28
@ cDevicePosture_RotateLeft
Definition seadGraphics.h:23
@ cDevicePosture_FlipY
Definition seadGraphics.h:26
@ cDevicePosture_FlipXY
Definition seadGraphics.h:27
@ cDevicePosture_RotateRight
Definition seadGraphics.h:22
@ cDevicePosture_RotateHalfAround
Definition seadGraphics.h:24
@ cDevicePosture_Same
Definition seadGraphics.h:21
@ cDevicePosture_FlipX
Definition seadGraphics.h:25
void lockDrawContext()
Definition seadGraphics.cpp:36
const Graphics & operator=(const Graphics &)
virtual void setStencilTestOpImpl(StencilOp fail, StencilOp zfail, StencilOp zpass)
void setBlendFactor(BlendFactor src_factor, BlendFactor dst_factor)
Definition seadGraphics.h:220
virtual void setPolygonOffsetEnableImpl(bool fill_front_enable, bool fill_back_enable, bool point_line_enable)
Definition seadDisposer.h:12
Definition seadThread.h:28
Definition seadAssert.h:44