tp/include/m_Do/m_Do_graphic.h

319 lines
8.8 KiB
C++

#ifndef M_DO_M_DO_GRAPHIC_H
#define M_DO_M_DO_GRAPHIC_H
#include "JSystem/JFramework/JFWDisplay.h"
#include "m_Do/m_Do_mtx.h"
#include "global.h"
#if WIDESCREEN_SUPPORT
#define FB_WIDTH (640)
#define FB_HEIGHT (456)
#else
#define FB_WIDTH (608)
#define FB_HEIGHT (448)
#endif
int mDoGph_Create();
void mDoGph_drawFilterQuad(s8 param_0, s8 param_1);
struct ResTIMG;
class JKRSolidHeap;
class mDoGph_gInf_c {
public:
class bloom_c {
public:
bloom_c() { m_buffer = NULL; }
/* 80009544 */ void create();
/* 800095F8 */ void remove();
/* 80009650 */ void draw();
u8 getEnable() { return mEnable; }
void setEnable(u8 i_enable) { mEnable = i_enable; }
GXColor* getMonoColor() { return &mMonoColor; }
GXColor* getBlendColor() { return &mBlendColor; }
void setPoint(u8 i_point) { mPoint = i_point; }
void setBlureSize(u8 i_size) { mBlureSize = i_size; }
void setBlureRatio(u8 i_ratio) { mBlureRatio = i_ratio; }
void setBlendColor(GXColor i_color) { mBlendColor = i_color; }
void setMonoColor(GXColor i_color) { mMonoColor = i_color; }
void setMode(u8 i_mode) { mMode = i_mode; }
void* getBuffer() { return m_buffer; }
u8 getPoint() { return mPoint; }
u8 getBlureSize() { return mBlureSize; }
u8 getBlureRatio() { return mBlureRatio; }
/* 0x00 */ GXColor mBlendColor;
/* 0x04 */ GXColor mMonoColor;
/* 0x08 */ u8 mEnable;
/* 0x09 */ u8 mMode;
/* 0x0A */ u8 mPoint;
/* 0x0B */ u8 mBlureSize;
/* 0x0C */ u8 mBlureRatio;
/* 0x10 */ void* m_buffer;
};
#if PLATFORM_WII || PLATFORM_SHIELD
class csr_c {
public:
virtual ~csr_c();
virtual bool isPointer();
void particleExecute();
static u32 m_blurID;
};
static void entryBaseCsr(csr_c*);
#endif
/* 80007E44 */ static void create();
/* 80007F90 */ static void beginRender();
/* 800080D0 */ static void fadeOut(f32);
/* 80007FD8 */ static void fadeOut(f32, _GXColor&);
/* 807DFAB4 */ static void fadeIn(f32 fadeSpeed, _GXColor& fadeColor) {
fadeOut(-fadeSpeed, fadeColor);
}
/* 80008028 */ static void fadeOut_f(f32, _GXColor&);
/* 800080A0 */ static void onBlure(const Mtx);
/* 80008078 */ static void onBlure();
/* 80008330 */ static void calcFade();
static JUTFader* getFader() { return mFader; }
static void setFader(JUTFader* fader) {
JFWDisplay::getManager()->setFader(fader);
mFader = fader;
}
static int startFadeOut(int param_0) { return JFWDisplay::getManager()->startFadeOut(param_0); }
static int startFadeIn(int param_0) { return JFWDisplay::getManager()->startFadeIn(param_0); }
static void setFadeColor(JUtility::TColor& color) { mFader->setColor(color); }
static void setClearColor(JUtility::TColor color) { JFWDisplay::getManager()->setClearColor(color); }
static void setBackColor(GXColor& color) { mBackColor = color; }
static void endFrame() { JFWDisplay::getManager()->endFrame(); }
static void offFade() { mFade = 0; }
static u8 isFade() { return mFade; }
static void fadeIn_f(f32 i_fadeSpeed, _GXColor& i_fadeColor) { fadeOut_f(-i_fadeSpeed, i_fadeColor); }
static void offBlure() { mBlureFlag = false; }
static u8 isBlure() { return mBlureFlag; }
static void setBlureRate(u8 i_rate) { mBlureRate = i_rate; }
static u8 getBlureRate() { return mBlureRate; }
static MtxP getBlureMtx() { return mBlureMtx; }
static void offAutoForcus() { mAutoForcus = 0; }
static BOOL isAutoForcus() { return mAutoForcus; }
static void setTickRate(u32 rate) { JFWDisplay::getManager()->setTickRate(rate); }
static void waitBlanking(int wait) { JFWDisplay::getManager()->waitBlanking(wait); }
static void setBlureMtx(const Mtx m) {
cMtx_copy(m, mBlureMtx);
}
static f32 getWidthF() {
#if PLATFORM_WII || PLATFORM_SHIELD
return m_widthF;
#else
return FB_WIDTH;
#endif
}
static f32 getHeightF() {
#if PLATFORM_WII || PLATFORM_SHIELD
return m_heightF;
#else
return FB_HEIGHT;
#endif
}
static f32 getWidth() { return FB_WIDTH; }
static f32 getHeight() { return FB_HEIGHT; }
static f32 getMinYF() {
#if PLATFORM_WII || PLATFORM_SHIELD
return m_minYF;
#else
return 0.0f;
#endif
}
static f32 getMinXF() {
#if PLATFORM_WII || PLATFORM_SHIELD
return m_minXF;
#else
return 0.0f;
#endif
}
static f32 getMaxYF() {
#if PLATFORM_WII || PLATFORM_SHIELD
return m_maxYF;
#else
return FB_HEIGHT;
#endif
}
static f32 getMaxXF() {
#if PLATFORM_WII || PLATFORM_SHIELD
return m_maxXF;
#else
return FB_WIDTH;
#endif
}
static f32 getAspect() {
#if WIDESCREEN_SUPPORT
return m_aspect;
#else
return 1.3571428f;
#endif
}
static int getMinY() {
#if WIDESCREEN_SUPPORT
return m_minY;
#else
return 0;
#endif
}
static int getMinX() {
#if WIDESCREEN_SUPPORT
return m_minX;
#else
return 0;
#endif
}
static int getMaxY() {
#if WIDESCREEN_SUPPORT
return m_maxY;
#else
return FB_HEIGHT;
#endif
}
static int getMaxX() {
#if WIDESCREEN_SUPPORT
return m_maxX;
#else
return FB_WIDTH;
#endif
}
static ResTIMG* getFrameBufferTimg() { return mFrameBufferTimg; }
static ResTIMG* getZbufferTimg() { return mZbufferTimg; }
static void* getFrameBufferTex() { return mFrameBufferTex; }
static void* getZbufferTex() { return mZbufferTex; }
static void setFadeRate(f32 rate) { mFadeRate = rate; }
static f32 getFadeRate() { return mFadeRate; }
static bloom_c* getBloom() { return &m_bloom; }
static GXColor& getFadeColor() { return mFadeColor; }
static GXColor& getBackColor() { return mBackColor; }
static void endRender() { JFWDisplay::getManager()->endRender(); }
static GXTexObj* getZbufferTexObj() { return &mZbufferTexObj; }
static GXTexObj* getFrameBufferTexObj() { return &mFrameBufferTexObj; }
static void setFrameRate(u16 i_rate) { JFWDisplay::getManager()->setFrameRate(i_rate); }
static int getFrameBufferSize() {
#define RoundUp16b(x) (u16)(((u16)(x) + 16 - 1) & ~(16 - 1))
return RoundUp16b(JFWDisplay::getManager()->getEfbWidth()) * JFWDisplay::getManager()->getEfbHeight() * 2;
}
static void* getFrameBufferMemory() {
return JFWDisplay::getManager()->getXfbManager()->getDisplayingXfb();
}
static f32 getInvScale() {
#if WIDESCREEN_SUPPORT
return m_invScale;
#else
return 1.0f;
#endif
}
static f32 getScale() { return 1.0f; }
#if WIDESCREEN_SUPPORT
static void setTvSize();
static void onWide();
static void offWide();
static u8 isWide();
static void onWideZoom();
static void offWideZoom();
static BOOL isWideZoom();
static void setWideZoomProjection(Mtx44& m);
static void setWideZoomLightProjection(Mtx& m);
#endif
static GXTexObj mFrameBufferTexObj;
static GXTexObj mZbufferTexObj;
static bloom_c m_bloom;
static Mtx mBlureMtx;
static GXColor mBackColor;
static GXColor mFadeColor;
static JUTFader* mFader;
static ResTIMG* mFrameBufferTimg;
static void* mFrameBufferTex;
static ResTIMG* mZbufferTimg;
static void* mZbufferTex;
static f32 mFadeRate;
static f32 mFadeSpeed;
static u8 mBlureFlag;
static u8 mBlureRate;
static u8 mFade;
static bool mAutoForcus;
#if PLATFORM_SHIELD
static JKRHeap* getHeap() {
return m_heap;
}
static void setHeap(JKRSolidHeap* i_heap) {
m_heap = (JKRHeap*)i_heap;
}
static JKRHeap* m_heap;
#endif
#if PLATFORM_WII || PLATFORM_SHIELD
static void resetDimming();
static csr_c* m_baseCsr;
static csr_c* m_csr;
static cXyz m_nowEffPos;
static cXyz m_oldEffPos;
static cXyz m_oldOldEffPos;
#endif
#if WIDESCREEN_SUPPORT
static u8 mWide;
static u8 mWideZoom;
static ResTIMG* m_fullFrameBufferTimg;
static void* m_fullFrameBufferTex;
static GXTexObj m_fullFrameBufferTexObj;
static f32 m_aspect;
static f32 m_scale;
static f32 m_invScale;
static f32 m_minXF;
static f32 m_minYF;
static int m_minX;
static int m_minY;
static f32 m_maxXF;
static f32 m_maxYF;
static int m_maxX;
static int m_maxY;
static int m_width;
static int m_height;
static f32 m_heightF;
static f32 m_widthF;
#endif
};
#endif /* M_DO_M_DO_GRAPHIC_H */