X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=src%2Fvogleditor%2Fvogleditor_qapicalltreemodel.cpp;h=a3f8ca3a03ab13d1e9e3c2c68a9ddcd744352554;hb=63b963ced8b174c86342a12f64fba3d595a39631;hp=e661f1cdd8fd217e0b5397711dfea99e49643c96;hpb=406ad78f7c0f904c1f7c00dddd51c8e98e83ccfa;p=vogl diff --git a/src/vogleditor/vogleditor_qapicalltreemodel.cpp b/src/vogleditor/vogleditor_qapicalltreemodel.cpp index e661f1c..a3f8ca3 100644 --- a/src/vogleditor/vogleditor_qapicalltreemodel.cpp +++ b/src/vogleditor/vogleditor_qapicalltreemodel.cpp @@ -34,7 +34,7 @@ vogleditor_QApiCallTreeModel::vogleditor_QApiCallTreeModel(vogl_trace_file_reader* reader, QObject *parent) : QAbstractItemModel(parent) { - m_rootItem = new vogleditor_apiCallTreeItem(this); + m_rootItem = vogl_new(vogleditor_apiCallTreeItem, this); setupModelData(reader, m_rootItem); } @@ -42,7 +42,7 @@ vogleditor_QApiCallTreeModel::~vogleditor_QApiCallTreeModel() { if (m_rootItem != NULL) { - delete m_rootItem; + vogl_delete(m_rootItem); m_rootItem = NULL; } @@ -196,7 +196,7 @@ void vogleditor_QApiCallTreeModel::setupModelData(vogl_trace_file_reader* pTrace // and append it to the parent if (pCurFrame == NULL) { - pCurFrame = new vogleditor_frameItem(total_swaps); + pCurFrame = vogl_new(vogleditor_frameItem, total_swaps); vogleditor_apiCallTreeItem* pNewFrameNode = vogl_new(vogleditor_apiCallTreeItem, pCurFrame, pCurParent); pCurParent->appendChild(pNewFrameNode); m_itemList.append(pNewFrameNode); @@ -235,6 +235,16 @@ void vogleditor_QApiCallTreeModel::setupModelData(vogl_trace_file_reader* pTrace // reset the CurFrame so that a new frame node will be created on the next api call pCurFrame = NULL; } + else if (entrypoint_id == VOGL_ENTRYPOINT_glBegin) + { + // items in the glBegin/glEnd block will be nested, including the glEnd + pCurParent = item; + } + else if (entrypoint_id == VOGL_ENTRYPOINT_glEnd) + { + // move the parent back one level of the hierarchy, to its own parent + pCurParent = pCurParent->parent(); + } } if (pTrace_reader->get_packet_type() == cTSPTEOF) @@ -528,7 +538,9 @@ vogleditor_apiCallTreeItem *vogleditor_QApiCallTreeModel::find_prev_drawcall(vog { gl_entrypoint_id_t entrypointId = static_cast(pItem->apiCallItem()->getGLPacket()->m_entrypoint_id); if (vogl_is_draw_entrypoint(entrypointId) || - vogl_is_clear_entrypoint(entrypointId)) + vogl_is_clear_entrypoint(entrypointId) || + (entrypointId == VOGL_ENTRYPOINT_glBitmap) || + (entrypointId == VOGL_ENTRYPOINT_glEnd)) { pFound = iter.peekPrevious(); break; @@ -561,7 +573,9 @@ vogleditor_apiCallTreeItem *vogleditor_QApiCallTreeModel::find_next_drawcall(vog { gl_entrypoint_id_t entrypointId = static_cast(pItem->apiCallItem()->getGLPacket()->m_entrypoint_id); if (vogl_is_draw_entrypoint(entrypointId) || - vogl_is_clear_entrypoint(entrypointId)) + vogl_is_clear_entrypoint(entrypointId) || + (entrypointId == VOGL_ENTRYPOINT_glBitmap) || + (entrypointId == VOGL_ENTRYPOINT_glEnd)) { pFound = iter.peekNext(); break;