Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 05/05/2011 at 07:43, xxxxxxxx wrote:
User Information: Cinema 4D Version: R12.043 Platform: Windows ; Language(s) : C++ ;
--------- Hi everybody, I want to Display some text on screen which only should be drawn when my object is selected. To achieve this I create a GeClipMap at Viewport-resolution and draw the strings onto it. At the end I draw it on Screen using the DrawTexture function. This works fine in DRAWPASS_OBJECT but in DRAWPASS_HANDLES nothing is drawn on screen. Thanks for any help! Satara
On 05/05/2011 at 09:23, xxxxxxxx wrote:
Yes that is right. What exactly is your question?
On 05/05/2011 at 16:14, xxxxxxxx wrote:
Is it not possible to use drawtexture in drawpass_handles?
On 05/05/2011 at 17:18, xxxxxxxx wrote:
Apparently not. Didn't work for me either.
On 06/05/2011 at 01:52, xxxxxxxx wrote:
ok thanks!
On 10/05/2011 at 01:14, xxxxxxxx wrote:
Another problem: How can I draw the Text in front of the geometry (with drawtexture)? This is how it looks currently:
here is the code: DRAWRESULT Draw(BaseObject *op, DRAWPASS drawpass, BaseDraw *bd, BaseDrawHelp *bh) { if (drawpass == DRAWPASS_OBJECT) { .... // render the clip map to the viewport bd->SetMatrix_Screen(); bd->SetLightList(BDRAW_SETLIGHTLIST_NOLIGHTS); Vector pnts[4] = { Vector(0, 0, 0), Vector(0, height, 0), Vector(width, height, 0), Vector(width, 0, 0) }; Vector cols[4] = { Vector(1, 1, 1), Vector(1, 1, 1), Vector(1, 1, 1), Vector(1, 1, 1) }; Vector nrms[4] = { Vector(0, 0, -1), Vector(0, 0, -1), Vector(0, 0, -1), Vector(0, 0, -1) }; Vector uvs[4] = { Vector(0, 0, 0), Vector(0, 1, 0), Vector(1, 1, 0), Vector(1, 0, 0) }; bd->DrawTexture(clipMap->GetBitmap(), pnts, cols, nrms, uvs, 4, DRAW_ALPHA_NORMAL, DRAW_TEXTUREFLAGS_INTERPOLATION_NEAREST); ... }
On 17/05/2011 at 03:55, xxxxxxxx wrote:
Draw it in the handles drawing pass. Also make sure to use a clockwise texture polygon e.g. { Vector(0,0,0), Vector(1,0,0), Vector(1,1,0), Vector(0,1,0) }.
Example:
DRAWRESULT RoundedTube::Draw(BaseObject *op, DRAWPASS drawpass, BaseDraw *bd, BaseDrawHelp *bh) { if (drawpass!=DRAWPASS_HANDLES) return DRAWRESULT_SKIP; bd->SetLightList(BDRAW_SETLIGHTLIST_NOLIGHTS); bd->SetMatrix_Screen(); Vector padr[4] = { Vector(200,200,0), Vector(300,200,0), Vector(300,300,0), Vector(200,300,0) }; Vector cadr[4] = { Vector(1,1,1), Vector(1,1,1), Vector(1,1,1), Vector(1,1,1) }; Vector nadr[4] = { Vector(0,0,-1), Vector(0,0,-1), Vector(0,0,-1), Vector(0,0,-1) }; Vector uvadr[4] = { Vector(0,0,0), Vector(1,0,0), Vector(1,1,0), Vector(0,1,0) }; bd->DrawTexture(bmp, padr, cadr, nadr, uvadr, 4, DRAW_ALPHA_NONE, DRAW_TEXTUREFLAGS_0); return DRAWRESULT_OK; }
cheers, Matthias
On 17/05/2011 at 04:53, xxxxxxxx wrote:
Ah! Cool. thx, very good to know
On 17/05/2011 at 12:39, xxxxxxxx wrote:
Looks perfect, thx a lot Matthias!
On 06/08/2014 at 19:40, xxxxxxxx wrote:
Hi All, but if is draw in the Handle time, the texture will be not visibile if the object is not selected.
regards Renato