X-Git-Url: https://git.cworth.org/git?p=vogl;a=blobdiff_plain;f=src%2Fvogleditor%2Fvogleditor_qprogramexplorer.cpp;fp=src%2Fvogleditor%2Fvogleditor_qprogramexplorer.cpp;h=c5dc70e1debfefcda9c8793c28af92367c1f4136;hp=1e7d6104c1e3349f3bd399bdbadca93d4a35116f;hb=6946d5fddddd5f94c405614cef8f39c627d89146;hpb=96da0248021a617555bfcfa419eb385485379239 diff --git a/src/vogleditor/vogleditor_qprogramexplorer.cpp b/src/vogleditor/vogleditor_qprogramexplorer.cpp index 1e7d610..c5dc70e 100644 --- a/src/vogleditor/vogleditor_qprogramexplorer.cpp +++ b/src/vogleditor/vogleditor_qprogramexplorer.cpp @@ -2,6 +2,7 @@ #include "ui_vogleditor_qprogramexplorer.h" #include "vogl_gl_object.h" +#include "vogl_gl_state_snapshot.h" #include "vogl_program_state.h" Q_DECLARE_METATYPE(vogl_program_state*); @@ -29,10 +30,25 @@ void vogleditor_QProgramExplorer::clear() ui->shaderTextEdit->clear(); } -void vogleditor_QProgramExplorer::set_program_objects(vogl_gl_object_state_ptr_vec objects) +uint vogleditor_QProgramExplorer::set_program_objects(vogl::vector sharingContexts) { clear(); - m_objects = objects; + + uint programCount = 0; + for (uint c = 0; c < sharingContexts.size(); c++) + { + vogl_gl_object_state_ptr_vec programObjects; + sharingContexts[c]->get_all_objects_of_category(cGLSTProgram, programObjects); + + programCount += add_program_objects(programObjects); + } + + return programCount; +} + +uint vogleditor_QProgramExplorer::add_program_objects(vogl_gl_object_state_ptr_vec objects) +{ + m_objects.append(objects); for (vogl_gl_object_state_ptr_vec::iterator iter = objects.begin(); iter != objects.end(); iter++) { @@ -50,6 +66,8 @@ void vogleditor_QProgramExplorer::set_program_objects(vogl_gl_object_state_ptr_v VOGL_ASSERT(!"Unhandled object type in vogleditor_QProgramExplorer"); } } + + return objects.size(); } bool vogleditor_QProgramExplorer::set_active_program(unsigned long long programHandle)