// 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)
{
gl_entrypoint_id_t entrypointId = static_cast<gl_entrypoint_id_t>(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;
{
gl_entrypoint_id_t entrypointId = static_cast<gl_entrypoint_id_t>(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;