Skip to content

Commit

Permalink
Merge pull request #49 from lawlove/nestcheck
Browse files Browse the repository at this point in the history
vogleditor: add nested operations check
  • Loading branch information
mikesartain committed Apr 25, 2014
2 parents 5a00dc5 + 817685d commit dc914e1
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 7 deletions.
30 changes: 30 additions & 0 deletions src/voglcommon/vogl_gl_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1344,6 +1344,36 @@ bool vogl_is_clear_entrypoint(gl_entrypoint_id_t id)
return false;
}

//------------------------------------------------------------------------------
// vogl_is_start_nested_entrypoint
//------------------------------------------------------------------------------
bool vogl_is_start_nested_entrypoint(gl_entrypoint_id_t id)
{
switch (id) {
case VOGL_ENTRYPOINT_glBegin:
case VOGL_ENTRYPOINT_glPushDebugGroup:
return true;
default:
break;
}
return false;
}

//------------------------------------------------------------------------------
// vogl_is_end_nested_entrypoint
//------------------------------------------------------------------------------
bool vogl_is_end_nested_entrypoint(gl_entrypoint_id_t id)
{
switch (id) {
case VOGL_ENTRYPOINT_glEnd:
case VOGL_ENTRYPOINT_glPopDebugGroup:
return true;
default:
break;
}
return false;
}

//----------------------------------------------------------------------------------------------------------------------
// vogl_get_json_value_as_enum
//----------------------------------------------------------------------------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions src/voglcommon/vogl_gl_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,8 @@ inline bool vogl_is_swap_buffers_entrypoint(gl_entrypoint_id_t id)

bool vogl_is_draw_entrypoint(gl_entrypoint_id_t id);
bool vogl_is_clear_entrypoint(gl_entrypoint_id_t id);
bool vogl_is_start_nested_entrypoint(gl_entrypoint_id_t id);
bool vogl_is_end_nested_entrypoint(gl_entrypoint_id_t id);

//----------------------------------------------------------------------------------------------------------------------
// Error helpers
Expand Down
17 changes: 10 additions & 7 deletions src/vogleditor/vogleditor_qapicalltreemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,23 +239,26 @@ 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)
else if (vogl_is_start_nested_entrypoint(entrypoint_id))
{
// items in the glBegin/glEnd block will be nested, including the glEnd
// Nest logically paired blocks of gl calls including terminating
// nest call
pCurParent = item;
}
else if (entrypoint_id == VOGL_ENTRYPOINT_glEnd)
else if (vogl_is_end_nested_entrypoint(entrypoint_id))
{
// move the parent back one level of the hierarchy, to its own parent
pCurParent = pCurParent->parent();
// (but not past Frame parent [e.g., unpaired "end" operation])
if (pCurParent->parent() != parent)
pCurParent = pCurParent->parent();
}
}

if (pTrace_reader->get_packet_type() == cTSPTEOF)
{
//found_eof_packet = true;
vogl_printf("Found trace file EOF packet on swap %" PRIu64 "\n", total_swaps);
break;
//found_eof_packet = true;
vogl_printf("Found trace file EOF packet on swap %" PRIu64 "\n", total_swaps);
break;
}
}
}
Expand Down

0 comments on commit dc914e1

Please sign in to comment.