Forums > Jitter

[bug] jit.gl.text2d

January 29, 2006 | 1:42 am

hi,

After days of trying different methods, I have to
conclude that there is a bug with jit.gl.text2d
because it really shouldn’t be so difficult to do what
I’m trying to do. I want to put multiple lables of 2d
text on top of the gl sketch in different positions –
something that is very simple in JSUI. In my opinion
Jit.text.2d should allways render on top of the sketch
when screenmode = 1. Currently when automatic = 0
(neccessary for multiple labels) the text will render
behind the sketch. What would be ideal would be an
integration of jit.gl.text2d and jit.gl.sketch so
that labelling was as easy as it is with JSUI.

OSX 10.3.9
ibook g4 1.2ghz
768mb ram
Max 4.56/jitter 1.52

oli larkin

// jit.gl.text2d test

autowatch = 0;

// Jitter Stuff —————————-
//——————————————-
var mywindow = new
JitterObject("jit.window","space");
mywindow.depthbuffer = 0;
mywindow.fsmenubar = 0;

var myrender = new
JitterObject("jit.gl.render","space");
myrender.ortho = 2;
myrender.erase_color = [1,1,1,1];

var mysketch = new
JitterObject("jit.gl.sketch","space");
mysketch.lighting_enable = 0;
mysketch.smooth_shading = 0;
mysketch.cull_face = 1;
mysketch.blend_enable = 1;
mysketch.antialias = 1;

var testtext = new
JitterObject("jit.gl.text2d","space");
testtext.automatic = 0;
testtext.color = [0.,0.,0.,1.];

function bang()
{
myrender.erase();

mysketch.reset();
mysketch.moveto([0.,0.,-1.]);
mysketch.color = [1.,0.,0.,1.];
mysketch.circle(0.3);

// how can i get this text to render on top of the
ball?
testtext.text("red ball");
testtext.position = [0.,0.];
testtext.draw();

testtext.text("hello");
testtext.position = [0.5,0.5];
testtext.draw();

myrender.drawswap();
}

———————————————————— ————

http://www.oli.adbe.org


January 29, 2006 | 2:04 am

Hi Oliver,

Here’s a fix to your js script that does what you want. It’s not a
bug with text2d that’s your problem, but a simple misunderstanding of
the jitter jit.gl.render object and how it draws things. If you’re
going to use @automatic 0, I would reccommend using this setting for
all of your gl objects. This way, you’re guaranteed to have the draw
order you desire. This is demonstrated in the fixed script.

// jit.gl.text2d test

autowatch = 1;

// Jitter Stuff —————————-
//——————————————-
var mywindow = new
JitterObject("jit.window","space");
mywindow.depthbuffer = 0;
mywindow.fsmenubar = 0;

var myrender = new
JitterObject("jit.gl.render","space");
myrender.ortho = 2;
myrender.erase_color = [1,1,1,1];

var mysketch = new
JitterObject("jit.gl.sketch","space");
mysketch.lighting_enable = 0;
mysketch.smooth_shading = 0;
mysketch.cull_face = 1;
mysketch.blend_enable = 1;
mysketch.antialias = 1;
mysketch.automatic = 0;

var testtext = new
JitterObject("jit.gl.text2d","space");
testtext.automatic = 0;
testtext.color = [0.,0.,0.,1.];

function bang()
{
myrender.erase();

mysketch.reset();
mysketch.moveto([0.,0.,-1.]);
mysketch.color = [1.,0.,0.,1.];
mysketch.circle(0.3);
mysketch.draw();

// how can i get this text to render on top of the red ball?
testtext.text("red ball");
testtext.position = [0.,0.];
testtext.draw();

testtext.text("hello");
testtext.position = [0.5,0.5];
testtext.draw();

myrender.drawswap();
}


January 29, 2006 | 2:58 am

thanks wesley! apologies to C74 for calling bug, however i still have some strange behaviour. The example above is ok but in my proper js file (with much more going on) the text doesn’t draw on first load. Only when i go into the js file (autowatch on) and save the file again (perhaps adding a space or comment) does the text appear. I assume that the jit.gl.text2d is not being initialised properly. has anyone else experienced such a problem?

oli

my plugins – http://www.oli.adbe.org


Viewing 3 posts - 1 through 3 (of 3 total)