public void ReinitializePDGContext() { HEU_SessionBase session = GetHAPIPDGSession(); if (session == null || !session.IsSessionValid()) { _pdgContextIDs = null; return; } int numContexts = 0; HAPI_StringHandle[] contextNames = new HAPI_StringHandle[_pdgContextSize]; HAPI_PDG_GraphContextId[] contextIDs = new HAPI_PDG_GraphContextId[_pdgContextSize]; if (!session.GetPDGGraphContexts(out numContexts, contextNames, contextIDs, _pdgContextSize) || numContexts <= 0) { _pdgContextIDs = null; return; } if (_pdgContextIDs == null || numContexts != _pdgContextIDs.Length) { _pdgContextIDs = new HAPI_PDG_GraphContextId[numContexts]; } for (int i = 0; i < numContexts; ++i) { _pdgContextIDs[i] = contextIDs[i]; //Debug.LogFormat("PDG Context: {0} - {1}", HEU_SessionManager.GetString(contextNames[i], session), contextIDs[i]); } }
/// <summary> /// Query the currently active PDG graph contexts in the Houdini Engine session. /// Should be done each time to get latest set of graph contexts. /// </summary> public void ReinitializePDGContext() { #if HOUDINIENGINEUNITY_ENABLED HEU_SessionBase session = GetHAPIPDGSession(); if (session == null || !session.IsSessionValid()) { _pdgContextIDs = null; return; } int numContexts = 0; HAPI_StringHandle[] contextNames = new HAPI_StringHandle[_pdgContextSize]; HAPI_PDG_GraphContextId[] contextIDs = new HAPI_PDG_GraphContextId[_pdgContextSize]; if (!session.GetPDGGraphContexts(out numContexts, contextNames, contextIDs, _pdgContextSize) || numContexts <= 0) { _pdgContextIDs = null; return; } if (_pdgContextIDs == null || numContexts != _pdgContextIDs.Length) { _pdgContextIDs = new HAPI_PDG_GraphContextId[numContexts]; } // TODO: might be okay to just use _pdgContextIDs above instead of doing a copy here for (int i = 0; i < numContexts; ++i) { _pdgContextIDs[i] = contextIDs[i]; //Debug.LogFormat("PDG Context: {0} - {1}", HEU_SessionManager.GetString(contextNames[i], session), contextIDs[i]); } #endif }