mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-03 02:53:08 -04:00
Merge branch 'main' of https://github.com/TakaRikka/dusk
This commit is contained in:
@@ -217,11 +217,14 @@ public:
|
||||
|
||||
#if TARGET_PC
|
||||
void setName(const char* name);
|
||||
void setNamef(const char* fmt, ...);
|
||||
const char* getName() const;
|
||||
|
||||
#define JKRHEAP_NAME(heap, name) (heap)->setName(name)
|
||||
#define JKRHEAP_NAMEF(heap, name, ...) (heap)->setNamef(name, __VA_ARGS__)
|
||||
#else
|
||||
#define JKRHEAP_NAME(heap, name)
|
||||
#define JKRHEAP_NAMEF(heap, name)
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
@@ -264,7 +264,7 @@ void J3DModelLoader::setupBBoardInfo() {
|
||||
mpModelData->getJointNodePointer(i)->setMtxType(0);
|
||||
break;
|
||||
default:
|
||||
OSReport("WRONG SHAPE MATRIX TYPE (__FILE__)\n");
|
||||
OSReport("WRONG SHAPE MATRIX TYPE (%d)\n", r26->mShapeMtxType);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,6 @@ void JFWSystem::firstInit() {
|
||||
OSInit();
|
||||
DVDInit();
|
||||
rootHeap = JKRExpHeap::createRoot(CSetUpParam::maxStdHeaps, false);
|
||||
JKRHEAP_NAME(rootHeap, "Root");
|
||||
systemHeap = JKRExpHeap::create(CSetUpParam::sysHeapSize, rootHeap, false);
|
||||
JKRHEAP_NAME(systemHeap, "System");
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ JKRExpHeap* JKRExpHeap::createRoot(int maxHeaps, bool errorFlag) {
|
||||
#endif
|
||||
heap = JKR_NEW_ARGS (mem1) JKRExpHeap(start1, alignedSize, NULL, errorFlag);
|
||||
sRootHeap = heap;
|
||||
JKRHEAP_NAME(sRootHeap, "Root");
|
||||
}
|
||||
heap->field_0x6e = true;
|
||||
return heap;
|
||||
|
||||
@@ -699,6 +699,14 @@ void JKRHeap::setName(const char* name) {
|
||||
strncpy(mName, name, sizeof(mName) - 1);
|
||||
mName[sizeof(mName) - 1] = '\0';
|
||||
}
|
||||
|
||||
void JKRHeap::setNamef(const char* fmt, ...) {
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
vsnprintf(mName, sizeof(mName), fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
const char* JKRHeap::getName() const {
|
||||
return mName;
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ void daAlink_c::setOriginalHeap(JKRExpHeap** i_ppheap, u32 i_size) {
|
||||
JKRHeap* parent = mDoExt_getGameHeap();
|
||||
|
||||
JKRExpHeap* heap = JKRExpHeap::create(size + (var_r29 + var_r28), parent, true);
|
||||
JKRHEAP_NAME(heap, "Alink original");
|
||||
*i_ppheap = heap;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,6 +260,7 @@ void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE i_heapType) {
|
||||
|
||||
JKRHeap* tmp;
|
||||
mAnimeHeap = mDoExt_createSolidHeapFromGameToCurrent(&tmp, size, 0x20);
|
||||
JKRHEAP_NAMEF(mAnimeHeap, "Alink anime type %d", i_heapType);
|
||||
|
||||
if (i_heapType == 4) {
|
||||
tmpWork = JKR_NEW_ARRAY(char, size);
|
||||
|
||||
@@ -138,6 +138,7 @@ int daTitle_c::create() {
|
||||
|
||||
m2DHeap = JKRCreateExpHeap(0x8000, mDoExt_getGameHeap(), false);
|
||||
JUT_ASSERT(345, m2DHeap != NULL);
|
||||
JKRHEAP_NAME(m2DHeap, "daTitle_c::m2DHeap");
|
||||
loadWait_init();
|
||||
|
||||
g_daTitHIO.id = mDoHIO_CREATE_CHILD("タイトルロゴ", &g_daTitHIO);
|
||||
|
||||
@@ -2080,6 +2080,7 @@ void dComIfGp_createSubExpHeap2D() {
|
||||
if (dComIfGp_getSubExpHeap2D(i) == NULL) {
|
||||
JKRExpHeap* i_heap = JKRCreateExpHeap(size, dComIfGp_getExpHeap2D(), false);
|
||||
JUT_ASSERT(3576, i_heap != NULL);
|
||||
JKRHEAP_NAMEF(i_heap, "SubExpHeap2D %d", i);
|
||||
dComIfGp_setSubExpHeap2D(i, i_heap);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ int dkWpillar_c::create() {
|
||||
|
||||
mpHeap = mDoExt_createSolidHeapFromGameToCurrent(0x2200, 0x20);
|
||||
if (mpHeap != NULL) {
|
||||
JKRHEAP_NAME(mpHeap, "d_k_wpillar::mpModel");
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 0x1C);
|
||||
JUT_ASSERT(96, modelData);
|
||||
|
||||
|
||||
@@ -100,6 +100,7 @@ dMenu_DmapBg_c::dMenu_DmapBg_c(JKRExpHeap* i_heap, STControl* i_stick) {
|
||||
|
||||
mpTalkHeap = JKRCreateExpHeap(0x32000, mpHeap, false);
|
||||
JUT_ASSERT(624, mpTalkHeap != NULL);
|
||||
JKRHEAP_NAME(mpTalkHeap, "dMenu_DmapBg_c::mpTalkHeap");
|
||||
|
||||
mpItemExplain = NULL;
|
||||
|
||||
|
||||
@@ -192,6 +192,7 @@ dMenu_Fmap_c::dMenu_Fmap_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i
|
||||
|
||||
mpTalkHeap = JKRCreateExpHeap(HEAP_SIZE(0x32000, 0x40000), mpHeap, false);
|
||||
JUT_ASSERT(359, mpTalkHeap != NULL);
|
||||
JKRHEAP_NAME(mpTalkHeap, "dMenu_Fmap_c::mpTalkHeap");
|
||||
field_0x200 = 0;
|
||||
mIsWarpMap = false;
|
||||
|
||||
|
||||
@@ -1173,6 +1173,7 @@ dPa_control_c::dPa_control_c() {
|
||||
size_t heapSize = 0x96000;
|
||||
#endif
|
||||
m_resHeap = JKRCreateExpHeap(heapSize, mDoExt_getArchiveHeap(), false);
|
||||
JKRHEAP_NAME(m_resHeap, "Particle control");
|
||||
JUT_ASSERT(2426, m_resHeap != NULL);
|
||||
mHeap = NULL;
|
||||
mSceneHeap = NULL;
|
||||
|
||||
@@ -606,6 +606,7 @@ int dRes_info_c::setRes() {
|
||||
heap->lock();
|
||||
mDataHeap = mDoExt_createSolidHeapToCurrent(0, heap, 0x20);
|
||||
JUT_ASSERT(1260, mDataHeap != NULL);
|
||||
JKRHEAP_NAMEF(mDataHeap, "Resource (%s)", mArchiveName);
|
||||
|
||||
int rt = loadResource();
|
||||
mDoExt_restoreCurrentHeap();
|
||||
@@ -624,6 +625,7 @@ int dRes_info_c::setRes() {
|
||||
OSReport_Error("<%s.arc> mDMCommandsetRes: can't alloc memory\n", mArchiveName);
|
||||
return -1;
|
||||
}
|
||||
JKRHEAP_NAMEF(mDataHeap, "Resource (%s)", mArchiveName);
|
||||
int rt = loadResource();
|
||||
mDoExt_restoreCurrentHeap();
|
||||
r28 = mDoExt_adjustSolidHeap(mDataHeap);
|
||||
|
||||
@@ -945,9 +945,11 @@ static int phase_0(dScnLogo_c* i_this) {
|
||||
|
||||
i_this->mLogoHeap = JKRExpHeap::create(i_this->dummyGameAlloc, var_r29, NULL, false);
|
||||
JUT_ASSERT(1525, i_this->mLogoHeap != NULL);
|
||||
JKRHEAP_NAME(i_this->mLogoHeap, "Logo");
|
||||
|
||||
i_this->mLogo01Heap = JKRCreateExpHeap(var_r28, i_this->mLogoHeap, false);
|
||||
JUT_ASSERT(1528, i_this->mLogo01Heap != NULL);
|
||||
JKRHEAP_NAME(i_this->mLogo01Heap, "Logo01");
|
||||
|
||||
#if VERSION == VERSION_GCN_PAL
|
||||
switch (i_this->getPalLanguage()) {
|
||||
|
||||
@@ -71,6 +71,7 @@ s32 dScnName_c::create() {
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
mHeap = JKRCreateExpHeap(HEAP_SIZE(0x180000, 0x1C0000), mDoExt_getGameHeap(), false);
|
||||
JUT_ASSERT(289, mHeap != NULL);
|
||||
JKRHEAP_NAME(mHeap, "File select");
|
||||
|
||||
field_0x1d0 = (JKRExpHeap*)mDoExt_setCurrentHeap(mHeap);
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <array>
|
||||
#include <optional>
|
||||
|
||||
#include "JSystem/JFramework/JFWSystem.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
@@ -58,10 +59,10 @@ namespace dusk {
|
||||
};
|
||||
}
|
||||
|
||||
static const char* GetHeapName(const JKRHeap* heap) {
|
||||
static std::optional<const char*> GetHeapName(const JKRHeap* heap) {
|
||||
const auto name = heap->getName();
|
||||
if (strlen(name) == 0) {
|
||||
return "Unknown";
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
return name;
|
||||
@@ -74,13 +75,20 @@ namespace dusk {
|
||||
auto indentSize = depth * 16;
|
||||
if (indentSize != 0)
|
||||
ImGui::Indent(indentSize);
|
||||
ImGui::TextUnformatted(GetHeapName(heap));
|
||||
auto heapName = GetHeapName(heap);
|
||||
if (heapName.has_value()) {
|
||||
ImGui::TextUnformatted(heapName.value());
|
||||
} else {
|
||||
char unkNameBuf[32];
|
||||
snprintf(unkNameBuf, sizeof(unkNameBuf), "Unknown (%p)", heap);
|
||||
ImGui::TextUnformatted(unkNameBuf);
|
||||
}
|
||||
if (indentSize != 0)
|
||||
ImGui::Unindent(indentSize);
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::ProgressBar(
|
||||
1 - (f32)heap->getFreeSize() / (f32)heap->getSize(),
|
||||
heap->getSize() > 0 ? 1 - (f32)heap->getFreeSize() / (f32)heap->getSize() : 0.0f,
|
||||
ImVec2(ImGui::GetContentRegionAvail().x, 0));
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
@@ -100,4 +108,4 @@ namespace dusk {
|
||||
DrawHeap(*iter, depth + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,6 +412,7 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* i_actor, heapCallbackFunc i_heapCallback
|
||||
if (dummy_heap != NULL) {
|
||||
heap = mDoExt_createSolidHeap(-1, dummy_heap, 0x20);
|
||||
JUT_ASSERT(1211, heap);
|
||||
JKRHEAP_NAMEF(heap, "Actor mng (%s)", procNameString);
|
||||
|
||||
if (fopAcM::HeapAdjustVerbose) {
|
||||
// Attempting registration with max dummy heap.
|
||||
@@ -453,6 +454,7 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* i_actor, heapCallbackFunc i_heapCallback
|
||||
|
||||
heap = mDoExt_createSolidHeapFromGame(i_size, 0x20);
|
||||
if (heap != NULL) {
|
||||
JKRHEAP_NAMEF(heap, "Actor mng (%s)", procNameString);
|
||||
if (fopAcM::HeapAdjustVerbose) {
|
||||
// Attempting registration with estimated heap size. %08x [%s]
|
||||
OS_REPORT("見積もりヒープサイズで登録してみます。%08x [%s]\n", heap,
|
||||
@@ -734,14 +736,7 @@ u8 var_r30 = fopAcM::HeapAdjustEntry;
|
||||
fopAcM::HeapAdjustEntry = var_r30;
|
||||
|
||||
#if TARGET_PC
|
||||
char buf[32];
|
||||
snprintf(
|
||||
buf,
|
||||
sizeof(buf),
|
||||
"Actor %d (%s)",
|
||||
i_actor->id,
|
||||
GetProcName(i_actor->profname));
|
||||
JKRHEAP_NAME(i_actor->heap, buf);
|
||||
JKRHEAP_NAMEF(i_actor->heap, "Actor %d (%s)", i_actor->id, GetProcName(i_actor->profname));
|
||||
#endif
|
||||
|
||||
return result;
|
||||
|
||||
@@ -659,6 +659,7 @@ static JKRAssertHeap* AssertHeap;
|
||||
JKRAssertHeap* mDoExt_createAssertHeap(JKRHeap* parentHeap) {
|
||||
JUT_ASSERT(1666, AssertHeap == NULL);
|
||||
AssertHeap = JKRAssertHeap::create(parentHeap);
|
||||
JKRHEAP_NAME(AssertHeap, "Assert");
|
||||
return AssertHeap;
|
||||
}
|
||||
|
||||
|
||||
@@ -2220,6 +2220,7 @@ static void dummy() {
|
||||
|
||||
int mDoGph_Create() {
|
||||
JKRSolidHeap* heap = mDoExt_createSolidHeapToCurrent(0, NULL, 0);
|
||||
JKRHEAP_NAME(heap, "mDoGph");
|
||||
mDoGph_gInf_c::create();
|
||||
dComIfGd_init();
|
||||
u32 var_r30 = mDoExt_adjustSolidHeap(heap);
|
||||
|
||||
Reference in New Issue
Block a user