rota slab boundmode on macintel?
Tangential to Pedro’s earlier post, I tried out the td.rota.jxs.help
file and the boundmode parameter doesn’t seem to do anything (open the
help file, change theta and scale, works as expected, change
boundmode, nothing seems to happen). The other parameters all appear
to work just dandy.
Are the boundmodes working differently? Am I missing something?
This is on a Macbook Pro 2ghz, osx10.4.7 max 4.6.1 jitter 1.6.1, with
I got the same thing here. Something makes me think the boundmode
errors the CG compiler was giving me on Windows are related. What’s
wierd is that it works on my powerbook which has a Radeon 9700. Very
very strange because GLSL is supposed to be hardware invariant.
Hopefully we can fix this.
On 8/28/06, Scott Fitzgerald
> Tangential to Pedro’s earlier post, I tried out the td.rota.jxs.help
> file and the boundmode parameter doesn’t seem to do anything (open the
> help file, change theta and scale, works as expected, change
> boundmode, nothing seems to happen). The other parameters all appear
> to work just dandy.
> Are the boundmodes working differently? Am I missing something?
> This is on a Macbook Pro 2ghz, osx10.4.7 max 4.6.1 jitter 1.6.1, with
> a RadeonX1600.
Please try this version of td.rota.jxs, from before we fixed for the
//setup for 2 texture
varying vec2 texcoord0;
varying vec2 texcoord1;
varying vec2 texdim0;
uniform vec2 zoom;
uniform vec2 offset;
uniform float theta;
uniform vec2 anchor;
uniform int boundmode;
uniform sampler2DRect tex0;
uniform sampler2DRect tex1;
const float pi=3.1415926;
// where is the point?
vec2 sizea = texdim0;
vec2 point = texcoord0;
mat2 sca = mat2 (1./zoom.x,0.,0.,1./zoom.y);//scaling matrix (zoom)
mat2 rot = mat2
vec2 no = ((((point-anchor*sizea)*rot)*sca)+anchor*sizea)+offset;
vec2 no2 = mod(no,sizea);//wrap
vec2 no4 =
// sampler coord
vec2 tc = no*float(boundmode==0) + no*float(boundmode==1) +
no2*float(boundmode==2) + no*float(boundmode==3) + no4*float(boundmode==4);
vec4 smp0 = texture2DRect(tex0,tc);
vec4 smp1 = texture2DRect(tex1,sizea-texcoord0);
vec2 outbound = sign(floor(no/sizea));//check for point>size
float boundchk = float(sign(float(outbound.x!=0.)+float(outbound.y!=0.)));
float checkm0 = float(boundmode==0)*boundchk;
float checkm1 = float(boundmode==1)*float(boundchk==0.);
vec4 ifb0 = mix(smp0,smp1,checkm0);//ignore
vec4 final = ifb0*float(boundmode != 1) + ifb0*float(checkm1==1.);//clear
// output texture
gl_FragColor = final;
That seems to do the trick.
On 8/28/06, Andrew Benson
> Hi Scott,
> Please try this version of td.rota.jxs, from before we fixed for the