Real men use printf, not iostream.
------------------
Luc-Eric Rousseau
Team Leader, User Interface
Softimage|XSI
> -----Original Message-----
> From: owner-xsi(at)Softimage.COM
> [mailto:owner-xsi(at)Softimage.COM] On Behalf Of Daniel Collin
> Posted At: Thursday, September 29, 2005 5:59 AM
> Posted To: xsi
> Conversation: [ C++API ] ostream ?
> Subject: Re: [ C++API ] ostream ?
>
>
> One (not very nice) way that springs to mind directly is to
> imlement a "logout" operator (similar to what you do with the
> other classes) so like:
>
> std::cout << xsiout << ...
>
> and
>
> ostream& XsiOut::operator<<(...)
> {
> // output to log here.
> }
>
> Thats the quick and dirty way but doesnt look very nice.
>
> Daniel
>
> >
> > How do I get "xsiout" is the question that pops up. Having classes
> > with stream operators is exactly what I'm after as I have
> to do a lot
> > of formatted output. Pivoting matrix values at the
> fraction seperator
> > for example.
> >
> >
> > Daniel Collin wrote:
> >
> >> What I did is to implement my own iostream alike class
> that handles
> >> similar things to iostream.
> >> Its really simple to implement and that way I can redirect all my
> >> logging to for example the XSI logwindow.
> >>
> >> Im not very familiar with how iostream works but maybe you can
> >> implement somthing like
> >>
> >> std::xsiout << "using standard iostream here" << std::endl;
> >>
> >> You should check out what kind of class cout/cerr is and
> it might be
> >> possible to inharit that class and write the output to the
> logconsole
> >> instead.
> >>
> >> Hope this helps.
> >>
> >> Daniel
> >>
> >>>
> >>> OK, I see. I guess I stick with good ol' LogMessage and XSI's
> >>> CString then.
> >>>
> >>>
> >>> Luc-Eric Rousseau wrote:
> >>>
> >>>> we're re-directing stdin/out/err in XSI, however this
> will work for
> >>>> plug-ins only if you use the multi-treaded DLL version
> of the VC++
> >>>> dotNet 2003 run-time library, in Release mode. In other
> words the
> >>>> same version that XSI is using.
> >>>> This is because the C Run-time library is not using the
> operating
> >>>> system's handle but rather each do their own private setup.
> >>>> It also can't work from a shader because the std
> handlers are local
> >>>> to each thread.
> >>>>
> >>>> ------------------
> >>>> Luc-Eric Rousseau
> >>>> Team Leader, User Interface
> >>>> Softimage|XSI
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: owner-xsi(at)Softimage.COM
> [mailto:owner-xsi(at)Softimage.COM] On
> >>>>> Behalf Of Felix Gebhardt Posted At: Wednesday,
> September 28, 2005
> >>>>> 9:36 AM Posted To: xsi
> >>>>> Conversation: [ C++API ] ostream ?
> >>>>> Subject: Re: [ C++API ] ostream ?
> >>>>>
> >>>>>
> >>>>>
> >>>>> From a plugin or an operator it doesn't work here. I even tried
> >>>>> all wide specialisations.
> >>>>>
> >>>>> F.
> >>>>>
> >>>>> Halfdan Ingvarsson wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> I believe we also capture everything written to stdout
> >>>>>
> >>>>>
> >>>>>
> >>>>> and/or stderr. For example, this *should* work:
> >>>>>
> >>>>>
> >>>>>> cout << "monkey\n";
> >>>>>>
> >>>>>> mental ray has a special capture system that pipes
> directly
> >>>>>
> >>>>>
> >>>>>
> >>>>> into the history log after some massaging.
> >>>>>
> >>>>>
> >>>>>> I don't know if this has changed recently. YMMV.
> >>>>>>
> >>>>>> - 1/2
> >>>>>>
> >>>>>> ________________________________
> >>>>>>
> >>>>>> From: owner-xsi(at)Softimage.COM on behalf of Felix Gebhardt
> >>>>>> Sent: Wed 28-Sep-05 09:03
> >>>>>> To: XSI(at)Softimage.COM
> >>>>>> Subject: Re: [ C++API ] ostream ?
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Hi Aloys,
> >>>>>>
> >>>>>> Yes, I have such utility inlines. It's actually even
> called
> >>>>>
> >>>>>
> >>>>>
> >>>>> Log() :) I
> >>>>>
> >>>>>> was just a bit tired of carrying it around for a
> second and
> >>>>>
> >>>>>
> >>>>>
> >>>>> was hoping
> >>>>>
> >>>>>> I'm missing something obvious as I had that Python print()
> >>>>>
> >>>>>
> >>>>>
> >>>>> in the back
> >>>>>
> >>>>>> of my head. I guess Jacko is right and someone put that up
> >>>>>> specially for Python and Mental Ray but not for the C++ API,
> >>>>>>
> >>>>>> Thanks anyway,
> >>>>>> F.
> >>>>>>
> >>>>>>
> >>>>>> Aloys Baillet wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> Actually you can shorten things a little bit:
> >>>>>>>
> >>>>>>> Application app;
> >>>>>>> app.LogMessage(L"huhu");
> >>>>>>>
> >>>>>>> will work.
> >>>>>>>
> >>>>>>> And you can also make a macro for that:
> >>>>>>>
> >>>>>>> #define log(x) Application().LogMessage(x) #define errx)
> >>>>>>> Application().LogMessage(x, siErrorMsg)
> >>>>>>>
> >>>>>>> log(L"huhu")
> >>>>>>> err(L"Bad!")
> >>>>>>>
> >>>>>>>
> >>>>>>> Hope this helps!
> >>>>>>>
> >>>>>>> Aloys
> >>>>>>>
> >>>>>>> On 28/09/05, Felix Gebhardt <gebhardt(at)betacarotin.de> wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> Is there a way to directly write to the History Window's
> >>>>>>>> stream? I mean something more direct than
> >>>>>>>> Application().LogMessage(CString(L"huhu"));
> >>>>>>>>
> >>>>>>>> Maybe my memory is playing tricks on me but I think
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>
> >>
> >> ---
> >> Unsubscribe? Mail Majordomo(at)Softimage.COM with the
> following text in
> >> body:
> >> unsubscribe xsi
> >>
> > ---
> > Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
> > body:
> > unsubscribe xsi
> >
> >
>
> ---
> Unsubscribe? Mail Majordomo(at)Softimage.COM with the following
> text in body:
> unsubscribe xsi
>
---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe xsi