Thanks for the response.
RE: Of course you can use the DrawHUDText in Python but you should use every draw possibilities (text, line, polygons) within a Draw() function that you override in your object (witch can be a tag, a generator, a tool etc..).
So, does this mean it is not possible with a script. Only a through plug-in. That's why you referred the tag plug-in as a solution right? Sorry. I don't really see a Python documentation for the Draw() function.
RE: create a basic res directory.
Thanks for the clarification. I tried making one, but still gives me a could not initialize error
Here is the current directory is:
could not initialize error
Thank you for looking at the problem.
Sorry i should have linked you to the c++ Draw manual.
About the directory structure you should have a look at this documentation
something like so
Thanks for the tree example. It loads successfully.
But it gives an error of tdrawexample.str
My concern is there is really nothing on .str file. Should I put something in there?
I've update the other thread with all information and files.
In fact you always need a "minimum" in those files.
Sorry for not being clear.
Thank you so much for the patience. It loads with no errors. Just one thing, how does it draw in the viewport?
I guess the name of the tag will appear on the viewport?
You can see the current state here:
Sorry again for the trouble.
the code prevent to work with non polygon object because we need to acces point position information with GetAllPoints
if not op.IsInstanceOf(c4d.Opolygon):
just edit your primitive. (by the way be carefull with the point number, it can be messy xD)
Thanks for the response! It works as expected. You can see the result here:
Using the plug-in code you provided, I just replaced the DrawMultiple command to
bd.DrawHUDText(50, 50, 'HUD Test')
bd.DrawHUDText(50, 50, 'HUD Test')
I see now what you mean by "the viewport is redraw so you have to redraw your text again."
I tried adding print "Hello World" within the code and it prints every redraw.
print "Hello World"
Will consider the thread as solved.
Thanks again. Have a great day ahead!
I've tried to follow your example from the thread you linked but it gives me "Could not initialize global resource for the plugin"
I thought it was solved, maybe something is changed in R21 or S22?
I started again from scratch and now it works but only in R21.
In S22 here's no error in the console but nothing shows in the viewport (the object is a polygon).
in s22 you have to register the tag with this tag : TAG_IMPLEMENTS_DRAW_FUNCTION
info=c4d.TAG_EXPRESSION | c4d.TAG_VISIBLE | c4d.TAG_IMPLEMENTS_DRAW_FUNCTION ,
I discovered another problem in S22, maybe.
The Hud text is correct but when I deselect the polygon object I cannot select anything in the viewport anymore.
I don't know if it's a bug or an error in the plugin
thanks a lot for that, i didn't tested it.
I've opened a bug entry for that one. We changed the viewport and lot of stuff.
I'll update this thread when the bug will be fixed.
@m_magalhaes said in DrawHUDText returns a white box instead of a text?:
I came across this problem today.
#define TAG_IMPLEMENTS_DRAW_FUNCTION (1 <<
note : you can add this flag to R21 builds, and your tags then display as expected in 22.
z settings have no effect on text.
in 21, text is drawn behind poly objects.
in 22 text is drawn in front of obejcts.
IMO, this is a bit of a mess. the new draw flag should be the exact opposite to what it is, to keep compatibility.
small differences, make a big difference when your already bending over backwards trying not to have to rebuild everything yet again, for 22.
Regarding the Z setting of DrawHUDText (I'm not sure about which one to be honest since there is no Z param for this method) previously the fact that HUD was behind poly object was a limitation regarding how our draw call was done by the viewport, but this is addressed in S22 and its the expected result that a HUD text is not overridden by any other objects but act as a HUD and to be draw in front of everything.