Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    VrayBridge+IRR crash

    SDK Help
    0
    3
    249
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

      On 20/09/2013 at 01:38, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   R13+ 
      Platform:   Windows  ;   Mac OSX  ; 
      Language(s) :     C++  ;

      ---------
      This is a difficult one to work out.  If the Interactive Render Region is active using the VrayBridge for rendering while using my tool (mouse click) to change the image used by the Shader attached to both the Vray Light tag and VrayBridge Environment, soon enough the VrayBridge crashes.  My plugin does not crash but is definitely involved in VB's demise.

      So far, I have tried StopExternalRenderer() along with StopAllThreads() but was not so sure these would be effective against the IRR (and they weren't).  Here is the code where VB crashes (Access Violation) :

      //------------------------------------------------------------------------  
      void LivePanel::UpdateHDRI_VRay(BaseDocument* pDoc, BaseObject* pObj, const Filename& fnProject)  
      //------------------------------------------------------------------------  
      {  
      #ifdef    DEVELOPMENT  
        GePrint("UpdateHDRI_VRay");  
      #endif  
         
        // UPDATE 2013.09.09  
        //        Implemented HDR file update of Vray Light tag  
        GeData        data;  
        pObj->GetParameter(DescID(HDRLSOBJECT_LUMINANCE_OBJ), data, DESCFLAGS_GET_0);  
        pObj =                    static_cast<BaseObject*>(data.GetLink(pDoc));  
        if (!pObj)  
            return;  
        BaseTag*    pVTag =        pObj->GetTag(PLUGINID_VRAYLIGHTTAG);  
        if (!pVTag)  
            return;  
        pVTag->GetParameter(DescID(VRAYLIGHTTAG_AREA_DOME_TEX), data, DESCFLAGS_GET_0);  
        BaseShader*    pShader =    static_cast<BaseShader*>(data.GetLink(pDoc));  
        if (!pShader)  
            return;  
        StopAllThreads();  
        if (!StopExternalRenderer())    return;  
        pShader->SetParameter(DescID(BITMAPSHADER_FILENAME), GeData(fnProject), DESCFLAGS_SET_0);  
        pShader->Message(MSG_CHANGE);  
        // - VrayBridge should react automatically to shader changes (we hope!)  
        EventAdd();  
      }  
      

      As that last comment states, it indeed does.  Either it works or it crashes.  Anyway to suspend the IRR render while making these changes?

      ETA: How would one go about checking if IRR is enabled so as to disable it using CallCommand()? Does CheckIsRunning(CHECKISRUNNING_EDITORRENDERING) consider the IRR?

      Thanks!

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

        On 20/09/2013 at 02:09, xxxxxxxx wrote:

        IsCommandEnabled() for my next to last question. 🙂

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          On 20/09/2013 at 04:26, xxxxxxxx wrote:

          Nevermind.  It appears that this issue is endemic to VrayBridge and not just our plugin.  I can choose any tool and click enough to crash it when IRR is enabled.  So, it will be more on them to remedy the situation that us.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post