A few more CCubeRenderer functions

This commit is contained in:
2025-02-01 22:40:41 -07:00
parent 23c5d67207
commit c23ec91113
12 changed files with 150 additions and 19 deletions

View File

@@ -10,6 +10,9 @@ extern CVector3f sPlayerPosition;
class CCubeMaterial {
public:
static void ResetCachedMaterials();
static void EnsureTevsDirect();
private:
static void SetupBlendMode(uint blendFactors, const CModelFlags& flags, bool alphaTest);

View File

@@ -7,12 +7,12 @@
// TODO
enum EDrawableType {
WorldSurface,
Particle,
Actor,
SimpleShadow,
Decal,
Invalid = 0xFFFF,
kDT_WorldSurface,
kDT_Particle,
kDT_Actor,
kDT_SimpleShadow,
kDT_Decal,
kDT_Invalid = 0xFFFF,
};
class CDrawable {

View File

@@ -353,7 +353,7 @@ public:
static void SetModelMatrix(const CTransform4f& xf);
static void SetAlphaCompare(ERglAlphaFunc comp0, uchar ref0, ERglAlphaOp op, ERglAlphaFunc comp1,
uchar ref1);
static void SetDepthWriteMode(bool test, ERglEnum comp, bool write);
static void SetDepthWriteMode(const bool test, ERglEnum comp, const bool write);
static void SetBlendMode(ERglBlendMode mode, ERglBlendFactor src, ERglBlendFactor dst,
ERglLogicOp op);
static void SetCullMode(ERglCullMode cullMode);

View File

@@ -27,6 +27,10 @@ public:
ushort* GetPaletteData() { return xc_entries.get(); }
const ushort* GetPaletteData() const { return xc_entries.get(); }
void Load() const;
void* Lock() {
x1c_locked = true;
return xc_entries.get();
}
void UnLock();
private:

View File

@@ -71,7 +71,7 @@ public:
void Load(GXTexMapID texMapId, EClampMode clampMode) const;
bool HasPalette() const { return IsCITextureFormat(mTexelFormat); }
const void* GetConstBitMapData(const int mip) const;
void* GetBitMapData(int);
void* GetBitMapData(int);
ETexelFormat GetTexelFormat() const { return mTexelFormat; }
const short GetWidth() const { return mWidth; }
const short GetHeight() const { return mHeight; }
@@ -96,6 +96,8 @@ public:
void InitBitmapBuffers(const ETexelFormat fmt, const short w, const short h, const int mips);
void InitTextureObjects();
void UnLock();
CGraphicsPalette* GetPalette() { return mGraphicsPalette.get(); }
const CGraphicsPalette* GetPalette() const { return mGraphicsPalette.get(); }
static void InvalidateTexmap(GXTexMapID id);
static bool IsCITextureFormat(ETexelFormat fmt) {

View File

@@ -7,6 +7,10 @@
template < typename T >
class TOneStatic {
public:
#ifndef __MWERKS__
// For clangd
void* operator new(size_t sz);
#endif
void* operator new(size_t sz, const char*, const char*);
void operator delete(void* ptr);

View File

@@ -85,7 +85,7 @@ public:
void SetModelMatrix(const CTransform4f& xf) override;
void AddParticleGen(const CParticleGen& gen) override;
void AddParticleGen(const CParticleGen& gen, const CVector3f&, const CAABox&) override;
void AddPlaneObject() override;
void AddPlaneObject(const void* obj, const CAABox& aabb, const CPlane& plane, int type) override;
void AddDrawable(const void* obj, const CVector3f& pos, const CAABox& bounds, int mode,
IRenderer::EDrawableSorting sorting) override;
void SetDrawableCallback(TDrawableCallback cb, const void* ctx) override;
@@ -142,6 +142,8 @@ public:
void PrepareDynamicLights(const rstl::vector< CLight >& lights) override;
void AllocatePhazonSuitMaskTexture();
void SetupRendererStates(bool depthWrite);
void SetupCGraphicsStates();
void SetRequestRGBA6(bool req) { x318_26_requestRGBA6 = req; }
CTexture* GetRealReflection();

View File

@@ -20,6 +20,7 @@ class CMetroidModelInstance;
class CModel;
class COsContext;
class CParticleGen;
class CPlane;
class CPVSVisSet;
class CResFactory;
class CSkinnedModel;
@@ -70,7 +71,7 @@ public:
virtual void SetModelMatrix(const CTransform4f& xf);
virtual void AddParticleGen(const CParticleGen& gen);
virtual void AddParticleGen(const CParticleGen& gen, const CVector3f&, const CAABox&);
virtual void AddPlaneObject();
virtual void AddPlaneObject(const void* obj, const CAABox& aabb, const CPlane& plane, int type);
virtual void AddDrawable(const void* obj, const CVector3f& pos, const CAABox& bounds, int mode,
IRenderer::EDrawableSorting sorting);
virtual void SetDrawableCallback(TDrawableCallback cb, const void* ctx);