|
|
|
@ -213,8 +213,8 @@ struct MicroProfileCustom |
|
|
|
|
|
|
|
struct SOptionDesc |
|
|
|
{ |
|
|
|
SOptionDesc(){} |
|
|
|
SOptionDesc(uint8_t nSubType, uint8_t nIndex, const char* fmt, ...):nSubType(nSubType), nIndex(nIndex) |
|
|
|
SOptionDesc()=default; |
|
|
|
SOptionDesc(uint8_t nSubType_, uint8_t nIndex_, const char* fmt, ...):nSubType(nSubType_), nIndex(nIndex_) |
|
|
|
{ |
|
|
|
va_list args; |
|
|
|
va_start (args, fmt); |
|
|
|
@ -573,10 +573,10 @@ inline void MicroProfileToolTipMeta(MicroProfileStringArray* pToolTip) |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
for(int i = 0; i < MICROPROFILE_META_MAX; ++i) |
|
|
|
for(int k = 0; k < MICROPROFILE_META_MAX; ++k) |
|
|
|
{ |
|
|
|
nMetaSumInclusive[i] += nMetaSum[i]; |
|
|
|
nMetaSum[i] = 0; |
|
|
|
nMetaSumInclusive[k] += nMetaSum[k]; |
|
|
|
nMetaSum[k] = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
@ -708,10 +708,10 @@ inline void MicroProfileDrawFloatTooltip(uint32_t nX, uint32_t nY, uint32_t nTok |
|
|
|
|
|
|
|
if(UI.nMouseLeftMod) |
|
|
|
{ |
|
|
|
int nIndex = (g_MicroProfileUI.LockedToolTipFront + MICROPROFILE_TOOLTIP_MAX_LOCKED - 1) % MICROPROFILE_TOOLTIP_MAX_LOCKED; |
|
|
|
g_MicroProfileUI.nLockedToolTipColor[nIndex] = S.TimerInfo[nTimerId].nColor; |
|
|
|
MicroProfileStringArrayCopy(&g_MicroProfileUI.LockedToolTips[nIndex], &ToolTip); |
|
|
|
g_MicroProfileUI.LockedToolTipFront = nIndex; |
|
|
|
int nToolTipIndex = (g_MicroProfileUI.LockedToolTipFront + MICROPROFILE_TOOLTIP_MAX_LOCKED - 1) % MICROPROFILE_TOOLTIP_MAX_LOCKED; |
|
|
|
g_MicroProfileUI.nLockedToolTipColor[nToolTipIndex] = S.TimerInfo[nTimerId].nColor; |
|
|
|
MicroProfileStringArrayCopy(&g_MicroProfileUI.LockedToolTips[nToolTipIndex], &ToolTip); |
|
|
|
g_MicroProfileUI.LockedToolTipFront = nToolTipIndex; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
@ -917,9 +917,8 @@ inline void MicroProfileDrawDetailedBars(uint32_t nWidth, uint32_t nHeight, int |
|
|
|
float fStart = floor(fMsBase*fRcpStep) * fStep; |
|
|
|
for(float f = fStart; f < fMsEnd; ) |
|
|
|
{ |
|
|
|
float fStart = f; |
|
|
|
float fNext = f + fStep; |
|
|
|
MicroProfileDrawBox(((fStart-fMsBase) * fMsToScreen), nBaseY, (fNext-fMsBase) * fMsToScreen+1, nBaseY + nHeight, UI.nOpacityBackground | g_nMicroProfileBackColors[nColorIndex++ & 1]); |
|
|
|
MicroProfileDrawBox(((f-fMsBase) * fMsToScreen), nBaseY, (fNext-fMsBase) * fMsToScreen+1, nBaseY + nHeight, UI.nOpacityBackground | g_nMicroProfileBackColors[nColorIndex++ & 1]); |
|
|
|
f = fNext; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -1116,9 +1115,9 @@ inline void MicroProfileDrawDetailedBars(uint32_t nWidth, uint32_t nHeight, int |
|
|
|
|
|
|
|
nMaxStackDepth = MicroProfileMax(nMaxStackDepth, nStackPos); |
|
|
|
float fMsStart = fToMs * MicroProfileLogTickDifference(nBaseTicks, nTickStart); |
|
|
|
float fMsEnd = fToMs * MicroProfileLogTickDifference(nBaseTicks, nTickEnd); |
|
|
|
float fMsEnd2 = fToMs * MicroProfileLogTickDifference(nBaseTicks, nTickEnd); |
|
|
|
float fXStart = fMsStart * fMsToScreen; |
|
|
|
float fXEnd = fMsEnd * fMsToScreen; |
|
|
|
float fXEnd = fMsEnd2 * fMsToScreen; |
|
|
|
float fYStart = (float)(nY + nStackPos * nYDelta); |
|
|
|
float fYEnd = fYStart + (MICROPROFILE_DETAILED_BAR_HEIGHT); |
|
|
|
float fXDist = MicroProfileMax(fXStart - fMouseX, fMouseX - fXEnd); |
|
|
|
@ -1269,22 +1268,22 @@ inline void MicroProfileDrawDetailedBars(uint32_t nWidth, uint32_t nHeight, int |
|
|
|
if(UI.nRangeBegin != UI.nRangeEnd) |
|
|
|
{ |
|
|
|
float fMsStart = fToMsCpu * MicroProfileLogTickDifference(nBaseTicksCpu, UI.nRangeBegin); |
|
|
|
float fMsEnd = fToMsCpu * MicroProfileLogTickDifference(nBaseTicksCpu, UI.nRangeEnd); |
|
|
|
float fMsEnd3 = fToMsCpu * MicroProfileLogTickDifference(nBaseTicksCpu, UI.nRangeEnd); |
|
|
|
float fXStart = fMsStart * fMsToScreen; |
|
|
|
float fXEnd = fMsEnd * fMsToScreen; |
|
|
|
float fXEnd = fMsEnd3 * fMsToScreen; |
|
|
|
MicroProfileDrawBox(fXStart, nBaseY, fXEnd, nHeight, MICROPROFILE_FRAME_COLOR_HIGHTLIGHT, MicroProfileBoxTypeFlat); |
|
|
|
MicroProfileDrawLineVertical(fXStart, nBaseY, nHeight, MICROPROFILE_FRAME_COLOR_HIGHTLIGHT | 0x44000000); |
|
|
|
MicroProfileDrawLineVertical(fXEnd, nBaseY, nHeight, MICROPROFILE_FRAME_COLOR_HIGHTLIGHT | 0x44000000); |
|
|
|
|
|
|
|
fMsStart += fDetailedOffset; |
|
|
|
fMsEnd += fDetailedOffset; |
|
|
|
fMsEnd3 += fDetailedOffset; |
|
|
|
char sBuffer[32]; |
|
|
|
uint32_t nLenStart = snprintf(sBuffer, sizeof(sBuffer)-1, "%.2fms", fMsStart); |
|
|
|
float fStartTextWidth = (float)((1+MICROPROFILE_TEXT_WIDTH) * nLenStart); |
|
|
|
float fStartTextX = fXStart - fStartTextWidth - 2; |
|
|
|
MicroProfileDrawBox(fStartTextX, nBaseY, fStartTextX + fStartTextWidth + 2, MICROPROFILE_TEXT_HEIGHT + 2 + nBaseY, 0x33000000, MicroProfileBoxTypeFlat); |
|
|
|
MicroProfileDrawText(fStartTextX+1, nBaseY, UINT32_MAX, sBuffer, nLenStart); |
|
|
|
uint32_t nLenEnd = snprintf(sBuffer, sizeof(sBuffer)-1, "%.2fms", fMsEnd); |
|
|
|
uint32_t nLenEnd = snprintf(sBuffer, sizeof(sBuffer)-1, "%.2fms", fMsEnd3); |
|
|
|
MicroProfileDrawBox(fXEnd+1, nBaseY, fXEnd+1+(1+MICROPROFILE_TEXT_WIDTH) * nLenEnd + 3, MICROPROFILE_TEXT_HEIGHT + 2 + nBaseY, 0x33000000, MicroProfileBoxTypeFlat); |
|
|
|
MicroProfileDrawText(fXEnd+2, nBaseY+1, UINT32_MAX, sBuffer, nLenEnd); |
|
|
|
|
|
|
|
@ -1297,9 +1296,9 @@ inline void MicroProfileDrawDetailedBars(uint32_t nWidth, uint32_t nHeight, int |
|
|
|
if(UI.nRangeBeginGpu != UI.nRangeEndGpu) |
|
|
|
{ |
|
|
|
float fMsStart = fToMsGpu * MicroProfileLogTickDifference(nBaseTicksGpu, UI.nRangeBeginGpu); |
|
|
|
float fMsEnd = fToMsGpu * MicroProfileLogTickDifference(nBaseTicksGpu, UI.nRangeEndGpu); |
|
|
|
float fMsEnd4 = fToMsGpu * MicroProfileLogTickDifference(nBaseTicksGpu, UI.nRangeEndGpu); |
|
|
|
float fXStart = fMsStart * fMsToScreen; |
|
|
|
float fXEnd = fMsEnd * fMsToScreen; |
|
|
|
float fXEnd = fMsEnd4 * fMsToScreen; |
|
|
|
MicroProfileDrawBox(fXStart, nBaseY, fXEnd, nHeight, MICROPROFILE_FRAME_COLOR_HIGHTLIGHT_GPU, MicroProfileBoxTypeFlat); |
|
|
|
MicroProfileDrawLineVertical(fXStart, nBaseY, nHeight, MICROPROFILE_FRAME_COLOR_HIGHTLIGHT_GPU | 0x44000000); |
|
|
|
MicroProfileDrawLineVertical(fXEnd, nBaseY, nHeight, MICROPROFILE_FRAME_COLOR_HIGHTLIGHT_GPU | 0x44000000); |
|
|
|
@ -1307,14 +1306,14 @@ inline void MicroProfileDrawDetailedBars(uint32_t nWidth, uint32_t nHeight, int |
|
|
|
nBaseY += MICROPROFILE_TEXT_HEIGHT+1; |
|
|
|
|
|
|
|
fMsStart += fDetailedOffset; |
|
|
|
fMsEnd += fDetailedOffset; |
|
|
|
fMsEnd4 += fDetailedOffset; |
|
|
|
char sBuffer[32]; |
|
|
|
uint32_t nLenStart = snprintf(sBuffer, sizeof(sBuffer)-1, "%.2fms", fMsStart); |
|
|
|
float fStartTextWidth = (float)((1+MICROPROFILE_TEXT_WIDTH) * nLenStart); |
|
|
|
float fStartTextX = fXStart - fStartTextWidth - 2; |
|
|
|
MicroProfileDrawBox(fStartTextX, nBaseY, fStartTextX + fStartTextWidth + 2, MICROPROFILE_TEXT_HEIGHT + 2 + nBaseY, 0x33000000, MicroProfileBoxTypeFlat); |
|
|
|
MicroProfileDrawText(fStartTextX+1, nBaseY, UINT32_MAX, sBuffer, nLenStart); |
|
|
|
uint32_t nLenEnd = snprintf(sBuffer, sizeof(sBuffer)-1, "%.2fms", fMsEnd); |
|
|
|
uint32_t nLenEnd = snprintf(sBuffer, sizeof(sBuffer)-1, "%.2fms", fMsEnd4); |
|
|
|
MicroProfileDrawBox(fXEnd+1, nBaseY, fXEnd+1+(1+MICROPROFILE_TEXT_WIDTH) * nLenEnd + 3, MICROPROFILE_TEXT_HEIGHT + 2 + nBaseY, 0x33000000, MicroProfileBoxTypeFlat); |
|
|
|
MicroProfileDrawText(fXEnd+2, nBaseY+1, UINT32_MAX, sBuffer, nLenEnd); |
|
|
|
} |
|
|
|
@ -1716,8 +1715,8 @@ bool MicroProfileDrawGraph(uint32_t nScreenWidth, uint32_t nScreenHeight) |
|
|
|
uint32_t nTextCount = 0; |
|
|
|
uint32_t nGraphIndex = (S.nGraphPut + MICROPROFILE_GRAPH_HISTORY - int(MICROPROFILE_GRAPH_HISTORY*(1.f - fMouseXPrc))) % MICROPROFILE_GRAPH_HISTORY; |
|
|
|
|
|
|
|
uint32_t nX = UI.nMouseX; |
|
|
|
uint32_t nY = UI.nMouseY + 20; |
|
|
|
uint32_t nMouseX = UI.nMouseX; |
|
|
|
uint32_t nMouseY = UI.nMouseY + 20; |
|
|
|
|
|
|
|
for(uint32_t i = 0; i < MICROPROFILE_MAX_GRAPHS; ++i) |
|
|
|
{ |
|
|
|
@ -1736,7 +1735,7 @@ bool MicroProfileDrawGraph(uint32_t nScreenWidth, uint32_t nScreenHeight) |
|
|
|
} |
|
|
|
if(nTextCount) |
|
|
|
{ |
|
|
|
MicroProfileDrawFloatWindow(nX, nY, Strings.ppStrings, Strings.nNumStrings, 0, pColors); |
|
|
|
MicroProfileDrawFloatWindow(nMouseX, nMouseY, Strings.ppStrings, Strings.nNumStrings, 0, pColors); |
|
|
|
} |
|
|
|
|
|
|
|
if(UI.nMouseRight) |
|
|
|
@ -2321,8 +2320,8 @@ inline void MicroProfileDrawMenu(uint32_t nWidth, uint32_t nHeight) |
|
|
|
uint32_t nMenuX[MICROPROFILE_MENU_MAX] = {0}; |
|
|
|
uint32_t nNumMenuItems = 0; |
|
|
|
|
|
|
|
int nLen = snprintf(buffer, 127, "MicroProfile"); |
|
|
|
MicroProfileDrawText(nX, nY, UINT32_MAX, buffer, nLen); |
|
|
|
int nMPTextLen = snprintf(buffer, 127, "MicroProfile"); |
|
|
|
MicroProfileDrawText(nX, nY, UINT32_MAX, buffer, nMPTextLen); |
|
|
|
nX += (sizeof("MicroProfile")+2) * (MICROPROFILE_TEXT_WIDTH+1); |
|
|
|
pMenuText[nNumMenuItems++] = "Mode"; |
|
|
|
pMenuText[nNumMenuItems++] = "Groups"; |
|
|
|
@ -2438,16 +2437,16 @@ inline void MicroProfileDrawMenu(uint32_t nWidth, uint32_t nHeight) |
|
|
|
int nNumLines = 0; |
|
|
|
bool bSelected = false; |
|
|
|
const char* pString = CB(nNumLines, &bSelected); |
|
|
|
uint32_t nWidth = 0, nHeight = 0; |
|
|
|
uint32_t nTextWidth = 0, nTextHeight = 0; |
|
|
|
while(pString) |
|
|
|
{ |
|
|
|
nWidth = MicroProfileMax<int>(nWidth, (int)strlen(pString)); |
|
|
|
nTextWidth = MicroProfileMax<int>(nTextWidth, (int)strlen(pString)); |
|
|
|
nNumLines++; |
|
|
|
pString = CB(nNumLines, &bSelected); |
|
|
|
} |
|
|
|
nWidth = (2+nWidth) * (MICROPROFILE_TEXT_WIDTH+1); |
|
|
|
nHeight = nNumLines * (MICROPROFILE_TEXT_HEIGHT+1); |
|
|
|
if(UI.nMouseY <= nY + nHeight+0 && UI.nMouseY >= nY-0 && UI.nMouseX <= nX + nWidth + 0 && UI.nMouseX >= nX - 0) |
|
|
|
nTextWidth = (2+nTextWidth) * (MICROPROFILE_TEXT_WIDTH+1); |
|
|
|
nTextHeight = nNumLines * (MICROPROFILE_TEXT_HEIGHT+1); |
|
|
|
if(UI.nMouseY <= nY + nTextHeight+0 && UI.nMouseY >= nY-0 && UI.nMouseX <= nX + nTextWidth + 0 && UI.nMouseX >= nX - 0) |
|
|
|
{ |
|
|
|
UI.nActiveMenu = nMenu; |
|
|
|
} |
|
|
|
@ -2455,21 +2454,21 @@ inline void MicroProfileDrawMenu(uint32_t nWidth, uint32_t nHeight) |
|
|
|
{ |
|
|
|
UI.nActiveMenu = UINT32_MAX; |
|
|
|
} |
|
|
|
MicroProfileDrawBox(nX, nY, nX + nWidth, nY + nHeight, 0xff000000|g_nMicroProfileBackColors[1]); |
|
|
|
MicroProfileDrawBox(nX, nY, nX + nTextWidth, nY + nTextHeight, 0xff000000|g_nMicroProfileBackColors[1]); |
|
|
|
for(int i = 0; i < nNumLines; ++i) |
|
|
|
{ |
|
|
|
bool bSelected = false; |
|
|
|
const char* pString = CB(i, &bSelected); |
|
|
|
bool bSelected2 = false; |
|
|
|
const char* pString2 = CB(i, &bSelected2); |
|
|
|
if(UI.nMouseY >= nY && UI.nMouseY < nY + MICROPROFILE_TEXT_HEIGHT + 1) |
|
|
|
{ |
|
|
|
if(UI.nMouseLeft || UI.nMouseRight) |
|
|
|
{ |
|
|
|
CBClick[nMenu](i); |
|
|
|
} |
|
|
|
MicroProfileDrawBox(nX, nY, nX + nWidth, nY + MICROPROFILE_TEXT_HEIGHT + 1, 0xff888888); |
|
|
|
MicroProfileDrawBox(nX, nY, nX + nTextWidth, nY + MICROPROFILE_TEXT_HEIGHT + 1, 0xff888888); |
|
|
|
} |
|
|
|
int nLen = snprintf(buffer, SBUF_SIZE-1, "%c %s", bSelected ? '*' : ' ' ,pString); |
|
|
|
MicroProfileDrawText(nX, nY, UINT32_MAX, buffer, nLen); |
|
|
|
int nTextLen = snprintf(buffer, SBUF_SIZE-1, "%c %s", bSelected2 ? '*' : ' ' ,pString2); |
|
|
|
MicroProfileDrawText(nX, nY, UINT32_MAX, buffer, nTextLen); |
|
|
|
nY += MICROPROFILE_TEXT_HEIGHT+1; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -2605,7 +2604,7 @@ inline void MicroProfileDrawCustom(uint32_t nWidth, uint32_t nHeight) |
|
|
|
for(uint32_t i = 0; i < nCount; ++i) |
|
|
|
{ |
|
|
|
nOffsetY += (1+MICROPROFILE_TEXT_HEIGHT); |
|
|
|
uint32_t nWidth = MicroProfileMin(nMaxWidth, (uint32_t)(nMaxWidth * pMs[i] * fRcpReference)); |
|
|
|
nWidth = MicroProfileMin(nMaxWidth, (uint32_t)(nMaxWidth * pMs[i] * fRcpReference)); |
|
|
|
MicroProfileDrawBox(nMaxOffsetX, nOffsetY, nMaxOffsetX+nWidth, nOffsetY+MICROPROFILE_TEXT_HEIGHT, pColors[i]|0xff000000); |
|
|
|
} |
|
|
|
} |
|
|
|
|