How to know, if render external...



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 02/07/2004 at 05:20, xxxxxxxx wrote:

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

    ---------
    ... and get render fps?

    How i can detect a external rendering and use fps value for rendering?
    Frames per seconds (fps) rate on the document (in editor) and frames per seconds rate on rendering can be different.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 02/07/2004 at 11:08, xxxxxxxx wrote:

    A way I was doing it was checking when the Message MSG_MULTI_DOCUMENTCLONED was recieved in the Message() method.
     
    Because the external renderer makes a copy of the document, so this works



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 04/07/2004 at 21:30, xxxxxxxx wrote:

    That sounds a bit fragile. I think it's better to check HierarchyHelper::GetVFlags(), RenderNotificationData::external or RayParameter::internal_render, depending on where you need the information.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 04/07/2004 at 22:53, xxxxxxxx wrote:

    Hi. Thx for answers.

    I get notification for external rendering with:

    Bool CarAnimTagPlugin::Message(GeListNode* pnodeMain, LONG longMsgType, void* pvData)
    {
         if (longMsgType==MSG_MULTI_RENDERNOTIFICATION)
              // begin of rendering
         {
              RenderNotificationData* prddData= (RenderNotificationData* ) pvData;
              
              if (prddData->start && prddData->external)
              {
                   boRendExt= TRUE;
              }
              else
              {     
                   boRendExt= FALSE;
              }
         }
         
         return TRUE;
    }

    But if i try to get frame rate of external rendering in Execute method with

    if (boRendExt)
         {
              RenderDate* prdateOlo= (BaseContainer* ) pdocMain->GetActiveRenderData();

    GePrint( "External render with frame rate of " +
                   LongToString(prdateOlo->GetLong(RDATA_FRAMERATE, 0))+ " frames per sec");
         }

    i get always zero :(.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 06/07/2004 at 06:24, xxxxxxxx wrote:

    Ok. I found self the problem:
    The correct code is :

    if (boRendExt) // external rendering is started
         {
              longFps= pdocMain->GetActiveRenderData()->
                   GetData().GetLong(RDATA_FRAMERATE, 0); // get rendering frame rate
         }
         else
         {
              longFps= pdocMain->GetFps();
         }


Log in to reply