Show render progress
-
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
-
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
-
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
-
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
-
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
-
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;}
-
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 insistenceFranz
-
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
-
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