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
    • Recent
    • Tags
    • Users
    • Login

    Show render progress

    Scheduled Pinned Locked Moved SDK Help
    9 Posts 0 Posters 568 Views
    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 Offline
      Helper
      last edited by

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

      On 30/01/2009 at 10:19, xxxxxxxx wrote:

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

      ---------
      Hello All,
      in my plugin have a command to render in picture viewer a specific status of my scene, and all works fine with renderdocument.
      the only problem is i can't update the render progression in picture viewer.
      i can see only final resoult.
      any idea ?
      Franz

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

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

        On 02/02/2009 at 12:13, xxxxxxxx wrote:

        any help 😞
        sorry for insistence 🙂
        Franz

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

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

          On 02/02/2009 at 16:43, xxxxxxxx wrote:

          By coincidence, I just saw something, maybe it's a start for your research...

          I just had a look at struct RenderNotificationData (you get this e.g. from the data of message MSG_MULTI_RENDERNOTIFICATION), and there I saw a pointer to class Render which has a function void UpdateScreen(void).

          I don't know if you have access to the Render class anywhere in your plugin, but it may be worth a try 😉

          Cheers,
          Jack

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

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

            On 02/02/2009 at 23:08, xxxxxxxx wrote:

            Thanks Jack,
            i'll try immediatly.
             
            all the best
            Franz

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

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

              On 03/02/2009 at 04:36, xxxxxxxx wrote:

              ok dont find way,
              here my code:

                  
                  
                  
                  
                  struct MyPrivateData
                  
                  
                  
                  
                  {
                  
                  
                  
                  
                  BaseBitmap* bmp;
                  
                  
                  
                  
                  };
                  
                  
                  
                  
                  void TakeProgressFunction (Real p, void* private_data)
                  
                  
                  
                  
                  { 
                  
                  
                  
                  
                  StatusSetBar(p);
                  
                  
                  
                  
                  GePrint (RealToString(p));
                  
                  
                  
                  
                  MyPrivateData *pd = static_cast<MyPrivateData*>(private_data);
                  
                  
                  
                  
                  ShowBitmap(pd->bmp);
                  
                  
                  
                  
                  }
                  
                  
                  
                  
                  class TakeRenderThread : public Thread
                  
                  
                  
                  
                  {
                  
                  
                  
                  
                  private:
                  
                  
                  
                  
                  BaseDocument *m_doc;
                  
                  
                  
                  
                  BaseBitmap *m_bmp;
                  
                  
                  
                  
                  BaseContainer m_rc;
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  public:
                  
                  
                  
                  
                  TakeRenderThread(BaseDocument *doc, BaseBitmap *bmp, BaseContainer rc ) { m_doc = doc; m_bmp = bmp; m_rc = rc; }
                  
                  
                  
                  
                  virtual ~TakeRenderThread() { m_doc = NULL; m_bmp = NULL; End(); Wait(FALSE); }
                  
                  
                  
                  
                  virtual void Main(void);
                  
                  
                  
                  
                  virtual const CHAR *GetThreadName(void) { return "TakeRenderThread"; }
                  
                  
                  
                  
                  };
                  
                  
                  
                  
                   
                  
                  
                  
                  
                  void TakeRenderThread::Main(void)
                  
                  
                  
                  
                  {
                  
                  
                  
                  
                  GePrint("Render thread");
                  
                  
                  
                  
                  if(RenderDocument(m_doc, m_rc, TakeProgressFunction, NULL ,m_bmp, RENDERFLAG_EXTERNAL, this->Get()) != RAY_OK)
                  
                  
                  
                  
                  GePrint("not ok");
                  
                  
                  
                  
                  }
                  
                  
                  
                  
                  class rendertake : public CommandData
                  
                  
                  
                  
                  {
                  
                  
                  
                  
                  public:
                  
                  
                  
                  
                  virtual Bool Execute(BaseDocument *doc);
                  
                  
                  
                  
                  };
                  
                  
                  
                  
                  Bool rendertake::Execute(BaseDocument *doc)
                  
                  
                  
                  
                  {
                  
                  
                  
                  
                  BaseBitmap * bmp = BaseBitmap::Alloc();
                  
                  
                  
                  
                  if(!bmp) return FALSE;
                  
                  
                  
                  
                  BaseDocument *cdoc = (BaseDocument* )doc->GetClone(COPY_DOCUMENT, NULL);
                  
                  
                  
                  
                  
                  
                  
                  BaseContainer rc = cdoc->GetActiveRenderData()->GetData();
                  
                  
                  
                  
                  bmp->Init(rc.GetLong(RDATA_XRES), rc.GetLong(RDATA_YRES), 24);
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  TakeRenderThread rt(cdoc, bmp, rc);
                  
                  
                  
                  
                  rt.Start(FALSE);
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  BaseDocument::Free(cdoc); 
                  
                  
                  
                  
                  BaseBitmap::Free(bmp);
                  
                  
                  
                  
                  return TRUE;
                  
                  
                  
                  
                  }
                  
                  
                  
              

              if ound it in a old post, the ShowBitmap(pd->bmp), crash.
              any idea ?
              Franz

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

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

                On 07/02/2009 at 14:58, xxxxxxxx wrote:

                ok i change some code, band now in progressfunction myprivatedata is not null, but cinema crash on showbitmap 😞
                Here my code, please any help ?
                struct MyPrivateData
                {
                BaseBitmap* bmp;
                };
                void TakeProgressFunction (Real p, void* private_data)
                {
                StatusSetBar(p);
                GePrint (RealToString(p));
                MyPrivateData *pd = static_cast<MyPrivateData*>(private_data);
                ShowBitmap(pd->bmp);
                }
                class TakeRenderThread : public Thread
                {
                private:
                BaseDocument *m_doc;
                BaseBitmap *m_bmp;
                BaseContainer m_rc;
                MyPrivateData m_pd;
                public:
                TakeRenderThread(BaseDocument *doc, BaseBitmap *bmp, BaseContainer rc , MyPrivateData pd ,) { m_doc = doc; m_bmp = bmp; m_rc = rc; m_pd = pd;}
                virtual ~TakeRenderThread() { m_doc = NULL; m_bmp = NULL; End(); Wait(FALSE); }
                virtual void Main(void);
                virtual const CHAR *GetThreadName(void) { return "TakeRenderThread"; }
                };
                void TakeRenderThread::Main(void)
                {
                GePrint("Render thread");
                if(RenderDocument(m_doc, m_rc, TakeProgressFunction, &m_pd ,m_bmp, RENDERFLAG_EXTERNAL, this->Get()) != RAY_OK)
                GePrint("not ok");
                }
                class rendertake : public CommandData
                {
                public:
                virtual Bool Execute(BaseDocument *doc);
                };
                Bool rendertake::Execute(BaseDocument *doc)
                {
                BaseBitmap * bmp = BaseBitmap::Alloc();
                if(!bmp) return FALSE;
                BaseDocument *cdoc = (BaseDocument* )doc->GetClone(COPY_DOCUMENT, NULL);
                BaseContainer rc = cdoc->GetActiveRenderData()->GetData();
                bmp->Init(rc.GetLong(RDATA_XRES), rc.GetLong(RDATA_YRES), 24);
                MyPrivateData pd;
                pd.bmp = bmp;
                TakeRenderThread rt(cdoc, bmp, rc, pd);
                rt.Start(FALSE);
                BaseDocument::Free(cdoc);
                return TRUE;

                }

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

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

                  On 09/02/2009 at 14:16, xxxxxxxx wrote:

                  ok, working on it ......
                  i found some ligth, but i need some help please.
                  ok my progress function don't crash if i set cinema to a single thread.
                  this perhaps mean i should to use MpThread, i saw menutest example in sdk, but for my little experience i can't apply it on my renderdocument thread.
                  Can anyone help me?
                  Maxon Support ????
                  best and sorry for insistence

                  Franz

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

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

                    On 09/02/2009 at 14:49, xxxxxxxx wrote:

                    I am sorry, I am working on it but I have no solution yet.

                    cheers,
                    Matthias

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

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

                      On 09/02/2009 at 23:25, xxxxxxxx wrote:

                      hello Mathias,
                      Thanks, i'll waith 🙂
                      Franz

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