mirror of https://github.com/AxioDL/metaforce.git
aurora: Add more GX state functions & cleanup
This commit is contained in:
parent
004d78100f
commit
fb69d3fdba
|
@ -157,6 +157,7 @@ void CCubeModel::DrawFlat(TVectorRef positions, TVectorRef normals, ESurfaceSele
|
|||
while (surface != nullptr) {
|
||||
const auto mat = GetMaterialByIndex(surface->GetMaterialIndex());
|
||||
// TODO draw
|
||||
surface = surface->GetNextSurface();
|
||||
}
|
||||
}
|
||||
if (surfaces != ESurfaceSelection::Unsorted) {
|
||||
|
@ -164,6 +165,7 @@ void CCubeModel::DrawFlat(TVectorRef positions, TVectorRef normals, ESurfaceSele
|
|||
while (surface != nullptr) {
|
||||
const auto mat = GetMaterialByIndex(surface->GetMaterialIndex());
|
||||
// TODO draw
|
||||
surface = surface->GetNextSurface();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -203,6 +203,7 @@ void CCubeRenderer::ReallyDrawPhazonSuitEffect(const zeus::CColor& modColor, con
|
|||
void CCubeRenderer::DoPhazonSuitIndirectAlphaBlur(float blurRadius, float f2, const TLockedToken<CTexture>& indTex) {}
|
||||
void CCubeRenderer::AddStaticGeometry(const std::vector<CMetroidModelInstance>* geometry,
|
||||
const CAreaRenderOctTree* octTree, int areaIdx) {}
|
||||
|
||||
void CCubeRenderer::EnablePVS(const CPVSVisSet& set, u32 areaIdx) {
|
||||
if (!xdc_) {
|
||||
xc8_pvs.emplace(set);
|
||||
|
@ -213,7 +214,9 @@ void CCubeRenderer::EnablePVS(const CPVSVisSet& set, u32 areaIdx) {
|
|||
|
||||
xe0_pvsAreaIdx = areaIdx;
|
||||
}
|
||||
|
||||
void CCubeRenderer::DisablePVS() { xc8_pvs.reset(); }
|
||||
|
||||
void CCubeRenderer::RemoveStaticGeometry(const std::vector<CMetroidModelInstance>* geometry) {}
|
||||
void CCubeRenderer::DrawUnsortedGeometry(int areaIdx, int mask, int targetMask, bool shadowRender) {}
|
||||
void CCubeRenderer::DrawSortedGeometry(int areaIdx, int mask, int targetMask) {}
|
||||
|
@ -230,9 +233,11 @@ void CCubeRenderer::AddParticleGen(CParticleGen& gen) {
|
|||
Buckets::Insert(closestPoint, *bounds, EDrawableType::Particle, reinterpret_cast<void*>(&gen), xb0_viewPlane, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void CCubeRenderer::AddParticleGen(CParticleGen& gen, const zeus::CVector3f& pos, const zeus::CAABox& bounds) {
|
||||
Buckets::Insert(pos, bounds, EDrawableType::Particle, reinterpret_cast<void*>(&gen), xb0_viewPlane, 0);
|
||||
}
|
||||
|
||||
void CCubeRenderer::AddPlaneObject(void* obj, const zeus::CAABox& aabb, const zeus::CPlane& plane, int type) {
|
||||
|
||||
auto closestPoint = aabb.closestPointAlongVector(xb0_viewPlane.normal());
|
||||
|
@ -258,6 +263,7 @@ void CCubeRenderer::AddPlaneObject(void* obj, const zeus::CAABox& aabb, const ze
|
|||
Buckets::InsertPlaneObject(closestDist, furthestDist, aabb, invertTest, plane, zOnly, EDrawableType(type + 2), obj);
|
||||
}
|
||||
}
|
||||
|
||||
void CCubeRenderer::AddDrawable(void* obj, const zeus::CVector3f& pos, const zeus::CAABox& aabb, int mode,
|
||||
IRenderer::EDrawableSorting sorting) {
|
||||
if (sorting == EDrawableSorting::UnsortedCallback) {
|
||||
|
@ -266,6 +272,7 @@ void CCubeRenderer::AddDrawable(void* obj, const zeus::CVector3f& pos, const zeu
|
|||
Buckets::Insert(pos, aabb, EDrawableType(mode + 2), obj, xb0_viewPlane, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void CCubeRenderer::SetDrawableCallback(IRenderer::TDrawableCallback cb, void* ctx) {
|
||||
xa8_drawableCallback = cb;
|
||||
xac_drawableCallbackUserData = ctx;
|
||||
|
@ -276,9 +283,11 @@ void CCubeRenderer::SetWorldViewpoint(const zeus::CTransform& xf) {
|
|||
auto front = xf.frontVector();
|
||||
xb0_viewPlane = zeus::CPlane(front, front.dot(xf.origin));
|
||||
}
|
||||
|
||||
void CCubeRenderer::SetPerspective(float fovy, float aspect, float znear, float zfar) {
|
||||
CGraphics::SetPerspective(fovy, aspect, znear, zfar);
|
||||
}
|
||||
|
||||
void CCubeRenderer::SetPerspective(float fovy, float width, float height, float znear, float zfar) {
|
||||
CGraphics::SetPerspective(fovy, width / height, znear, zfar);
|
||||
}
|
||||
|
@ -286,11 +295,14 @@ void CCubeRenderer::SetPerspective(float fovy, float width, float height, float
|
|||
std::pair<zeus::CVector2f, zeus::CVector2f> CCubeRenderer::SetViewportOrtho(bool centered, float znear, float zfar) {
|
||||
return std::pair<zeus::CVector2f, zeus::CVector2f>();
|
||||
}
|
||||
|
||||
void CCubeRenderer::SetClippingPlanes(const zeus::CFrustum& frustum) { x44_frustumPlanes = frustum; }
|
||||
|
||||
void CCubeRenderer::SetViewport(int left, int bottom, int width, int height) {
|
||||
CGraphics::SetViewport(left, bottom, width, height);
|
||||
CGraphics::SetScissor(left, bottom, width, height);
|
||||
}
|
||||
|
||||
void CCubeRenderer::BeginScene() {
|
||||
CGraphics::SetUseVideoFilter(true);
|
||||
CGraphics::SetViewport(0, 0, CGraphics::g_Viewport.x8_width, CGraphics::g_Viewport.xc_height);
|
||||
|
@ -314,10 +326,11 @@ void CCubeRenderer::BeginScene() {
|
|||
}
|
||||
|
||||
// GXSetPixelFmt(x318_26_requestRGBA6, GX_ZC_LINEAR);
|
||||
// GXSetAlphaUpdate(true);
|
||||
// GXSetDstAlpha(true, 0);
|
||||
aurora::gfx::set_alpha_update(true);
|
||||
aurora::gfx::set_dst_alpha(true, 0.f);
|
||||
CGraphics::BeginScene();
|
||||
}
|
||||
|
||||
void CCubeRenderer::EndScene() {
|
||||
x318_31_persistRGBA6 = !CGraphics::g_IsBeginSceneClearFb;
|
||||
CGraphics::EndScene();
|
||||
|
@ -332,14 +345,9 @@ void CCubeRenderer::EndScene() {
|
|||
void CCubeRenderer::SetDebugOption(IRenderer::EDebugOption option, int value) {
|
||||
if (option == EDebugOption::PVSState) {
|
||||
xc8_pvs->SetState(EPVSVisSetState(value));
|
||||
return;
|
||||
}
|
||||
|
||||
if (option == EDebugOption::PVSMode) {
|
||||
} else if (option == EDebugOption::PVSMode) {
|
||||
xc0_pvsMode = EPVSMode(value);
|
||||
}
|
||||
|
||||
if (option == EDebugOption::FogDisabled) {
|
||||
} else if (option == EDebugOption::FogDisabled) {
|
||||
x318_28_disableFog = true;
|
||||
}
|
||||
}
|
||||
|
@ -375,12 +383,16 @@ void CCubeRenderer::SetThermalColdScale(float scale) {}
|
|||
void CCubeRenderer::DoThermalBlendCold() {}
|
||||
void CCubeRenderer::DoThermalBlendHot() {}
|
||||
u32 CCubeRenderer::GetStaticWorldDataSize() { return 0; }
|
||||
|
||||
void CCubeRenderer::SetGXRegister1Color(const zeus::CColor& color) {
|
||||
CGraphics::g_ColorRegs[1] = color;
|
||||
// GXSetTevColor(GX_TEVREG1, color);
|
||||
aurora::gfx::set_gx_reg1_color(color);
|
||||
}
|
||||
|
||||
void CCubeRenderer::SetWorldLightFadeLevel(float level) { x2fc_tevReg1Color = zeus::CColor(level, level, level, 1.f); }
|
||||
|
||||
void CCubeRenderer::SetWorldLightMultiplyColor(const zeus::CColor& color) { CGraphics::g_ColorRegs[2] = color; }
|
||||
|
||||
void CCubeRenderer::PrepareDynamicLights(const std::vector<CLight>& lights) {}
|
||||
void CCubeRenderer::AllocatePhazonSuitMaskTexture() {}
|
||||
void CCubeRenderer::DrawPhazonSuitIndirectEffect(const zeus::CColor& nonIndirectMod,
|
||||
|
|
|
@ -43,7 +43,6 @@ u32 CGraphics::g_FramesPast = 0;
|
|||
frame_clock::time_point CGraphics::g_FrameStartTime = frame_clock::now();
|
||||
ERglEnum CGraphics::g_depthFunc = ERglEnum::Never;
|
||||
ERglCullMode CGraphics::g_cullMode = ERglCullMode::None;
|
||||
// bool CGraphics::g_commitAsLazy = false;
|
||||
|
||||
const std::array<zeus::CMatrix3f, 6> CGraphics::skCubeBasisMats{{
|
||||
/* Right */
|
||||
|
@ -125,7 +124,7 @@ void CGraphics::BeginScene() {
|
|||
}
|
||||
|
||||
void CGraphics::EndScene() {
|
||||
//CGX::SetZMode(true, GX_LEQUAL, true);
|
||||
aurora::gfx::set_depth_mode(true, ERglEnum::LEqual, true);
|
||||
/* Spinwait until g_NumBreakpointsWaiting is 0 */
|
||||
/* ++g_NumBreakpointsWaiting; */
|
||||
/* GXCopyDisp to g_CurrenFrameBuf with clear enabled */
|
||||
|
@ -498,77 +497,72 @@ void CGraphics::SetUseVideoFilter(bool filter) {
|
|||
|
||||
void CGraphics::SetClearColor(const zeus::CColor& color) {
|
||||
g_ClearColor = color;
|
||||
// GXSetCopyClear(g_ClearColor, g_ClearDepthValue);
|
||||
aurora::gfx::set_clear_color(color);
|
||||
}
|
||||
|
||||
void CGraphics::SetCopyClear(const zeus::CColor& color, float depth) {
|
||||
g_ClearColor = color;
|
||||
g_ClearDepthValue = depth; // 1.6777215E7 * depth; Metroid Prime needed this to convert float [0,1] depth into 24 bit
|
||||
// range, we no longer have this requirement
|
||||
aurora::gfx::set_clear_color(color);
|
||||
// TODO do we care about depth value?
|
||||
// GXSetCopyClear(g_ClearColor, g_ClearDepthValue);
|
||||
}
|
||||
|
||||
void CGraphics::SetIsBeginSceneClearFb(bool clear) {
|
||||
g_IsBeginSceneClearFb = clear;
|
||||
}
|
||||
// boo::IGraphicsDataFactory::Platform CGraphics::g_BooPlatform = boo::IGraphicsDataFactory::Platform::Null;
|
||||
// boo::IGraphicsDataFactory* CGraphics::g_BooFactory = nullptr;
|
||||
// boo::IGraphicsCommandQueue* CGraphics::g_BooMainCommandQueue = nullptr;
|
||||
// boo::ObjToken<boo::ITextureR> CGraphics::g_SpareTexture;
|
||||
// const char* CGraphics::g_BooPlatformName = nullptr;
|
||||
void CGraphics::SetIsBeginSceneClearFb(bool clear) { g_IsBeginSceneClearFb = clear; }
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a564c({GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO,
|
||||
GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_RASC},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO,
|
||||
GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a564c{
|
||||
{GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_RASC},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5698({GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_RASC,
|
||||
GX::TevColorArg::CC_C0, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA,
|
||||
GX::TevAlphaArg::CA_A0, GX::TevAlphaArg::CA_ZERO});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5698{
|
||||
{GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_C0, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA, GX::TevAlphaArg::CA_A0, GX::TevAlphaArg::CA_ZERO},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5e70({GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO,
|
||||
GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_C0},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO,
|
||||
GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_A0});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5e70{
|
||||
{GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_C0},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_A0},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5ebc({GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_RASC,
|
||||
GX::TevColorArg::CC_TEXC, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA,
|
||||
GX::TevAlphaArg::CA_TEXA, GX::TevAlphaArg::CA_ZERO});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5ebc{
|
||||
{GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_TEXC, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA, GX::TevAlphaArg::CA_TEXA, GX::TevAlphaArg::CA_ZERO},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5f08({GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_TEXC,
|
||||
GX::TevColorArg::CC_TEXA, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO,
|
||||
GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5f08{
|
||||
{GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_TEXC, GX::TevColorArg::CC_TEXA, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5f54({GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_ONE,
|
||||
GX::TevColorArg::CC_TEXC, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_TEXA,
|
||||
GX::TevAlphaArg::CA_RASA, GX::TevAlphaArg::CA_ZERO});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5f54{
|
||||
{GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_ONE, GX::TevColorArg::CC_TEXC, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_TEXA, GX::TevAlphaArg::CA_RASA, GX::TevAlphaArg::CA_ZERO},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5fa0({GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO,
|
||||
GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_TEXC},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO,
|
||||
GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_TEXA});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5fa0{
|
||||
{GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_TEXC},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_TEXA},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass804bfcc0({GX::TevColorArg::CC_C0, GX::TevColorArg::CC_TEXC,
|
||||
GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO,
|
||||
GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass804bfcc0{
|
||||
{GX::TevColorArg::CC_C0, GX::TevColorArg::CC_TEXC, GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_RASA},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5fec({GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO,
|
||||
GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_RASC},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_TEXA,
|
||||
GX::TevAlphaArg::CA_RASA, GX::TevAlphaArg::CA_ZERO});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a5fec{
|
||||
{GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_RASC},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_TEXA, GX::TevAlphaArg::CA_RASA, GX::TevAlphaArg::CA_ZERO},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a6038({GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_TEXC,
|
||||
GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_KONST,
|
||||
GX::TevAlphaArg::CA_RASA, GX::TevAlphaArg::CA_ZERO});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a6038{
|
||||
{GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_TEXC, GX::TevColorArg::CC_RASC, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_KONST, GX::TevAlphaArg::CA_RASA, GX::TevAlphaArg::CA_ZERO},
|
||||
};
|
||||
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a6084({GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_CPREV,
|
||||
GX::TevColorArg::CC_APREV, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO,
|
||||
GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_APREV});
|
||||
const CTevCombiners::CTevPass CGraphics::sTevPass805a6084{
|
||||
{GX::TevColorArg::CC_ZERO, GX::TevColorArg::CC_CPREV, GX::TevColorArg::CC_APREV, GX::TevColorArg::CC_ZERO},
|
||||
{GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_ZERO, GX::TevAlphaArg::CA_APREV},
|
||||
};
|
||||
} // namespace metaforce
|
||||
|
|
|
@ -142,7 +142,11 @@ enum class ZComp : uint8_t {
|
|||
void set_cull_mode(metaforce::ERglCullMode mode) noexcept;
|
||||
void set_blend_mode(metaforce::ERglBlendMode mode, metaforce::ERglBlendFactor src, metaforce::ERglBlendFactor dst,
|
||||
metaforce::ERglLogicOp op) noexcept;
|
||||
void set_depth_mode(bool compare_enable, metaforce::ERglEnum func, bool update_enable);
|
||||
void set_depth_mode(bool compare_enable, metaforce::ERglEnum func, bool update_enable) noexcept;
|
||||
void set_gx_reg1_color(const zeus::CColor& color) noexcept;
|
||||
void set_alpha_update(bool enabled) noexcept;
|
||||
void set_dst_alpha(bool enabled, float value) noexcept;
|
||||
void set_clear_color(const zeus::CColor& color) noexcept;
|
||||
|
||||
// Model state
|
||||
void set_alpha_discard(bool v);
|
||||
|
|
|
@ -121,7 +121,11 @@ bool get_dxt_compression_supported() noexcept { return g_device.HasFeature(wgpu:
|
|||
void set_cull_mode(metaforce::ERglCullMode mode) noexcept {}
|
||||
void set_blend_mode(metaforce::ERglBlendMode mode, metaforce::ERglBlendFactor src, metaforce::ERglBlendFactor dst,
|
||||
metaforce::ERglLogicOp op) noexcept {}
|
||||
void set_depth_mode(bool compare_enable, metaforce::ERglEnum func, bool update_enable) {}
|
||||
void set_depth_mode(bool compare_enable, metaforce::ERglEnum func, bool update_enable) noexcept {}
|
||||
void set_gx_reg1_color(const zeus::CColor& color) noexcept {}
|
||||
void set_alpha_update(bool enabled) noexcept {}
|
||||
void set_dst_alpha(bool enabled, float value) noexcept {}
|
||||
void set_clear_color(const zeus::CColor& color) noexcept {}
|
||||
|
||||
// Model state
|
||||
void set_alpha_discard(bool v) {}
|
||||
|
|
|
@ -128,7 +128,9 @@ void initialize(SDL_Window* window) {
|
|||
g_Adapter.GetProperties(&g_AdapterProperties);
|
||||
g_backendType = g_AdapterProperties.backendType;
|
||||
const auto backendName = magic_enum::enum_name(g_backendType);
|
||||
Log.report(logvisor::Info, FMT_STRING("Using {} graphics backend"), backendName);
|
||||
Log.report(logvisor::Info, FMT_STRING("Graphics adapter information\n API: {}\n Device: {} ({})\n Driver: {}"),
|
||||
backendName, g_AdapterProperties.name, magic_enum::enum_name(g_AdapterProperties.adapterType),
|
||||
g_AdapterProperties.driverDescription);
|
||||
|
||||
{
|
||||
const std::array<wgpu::FeatureName, 1> requiredFeatures{
|
||||
|
|
|
@ -64,7 +64,7 @@ void new_frame(const WindowSize& size) noexcept {
|
|||
ImGui_ImplSDL2_NewFrame();
|
||||
|
||||
// Render at full DPI
|
||||
ImGui::GetIO().DisplaySize = ImVec2{static_cast<float>(size.fb_width), static_cast<float>(size.fb_height)};
|
||||
ImGui::GetIO().DisplaySize = {static_cast<float>(size.fb_width), static_cast<float>(size.fb_height)};
|
||||
ImGui::NewFrame();
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
#include <zeus/CVector2f.hpp>
|
||||
|
||||
#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
||||
#define IMGUI_DISABLE_OBSOLETE_KEYIO
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define IMGUI_DISABLE_DEMO_WINDOWS
|
||||
#endif
|
||||
|
||||
#define IM_VEC2_CLASS_EXTRA \
|
||||
ImVec2(const zeus::CVector2f& v) { \
|
||||
|
|
Loading…
Reference in New Issue