<?xml version="1.0" encoding="UTF-8"?>
	<rss version="2.0"
		xmlns:content="http://purl.org/rss/1.0/modules/content/"
		xmlns:wfw="http://wellformedweb.org/CommentAPI/"
		xmlns:dc="http://purl.org/dc/elements/1.1/"
		xmlns:atom="http://www.w3.org/2005/Atom"

			>

	<channel>
		<title>Cycling 74  &#187;  Topic: bug report: td.rota.jxs</title>
		<atom:link href="http://cycling74.com/forums/topic/bug-report-td-rota-jxs/feed" rel="self" type="application/rss+xml" />
		<link>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/feed</link>
		<description></description>
		<pubDate>Wed, 19 Jun 2013 21:32:25 +0000</pubDate>
		<generator>http://bbpress.org/?v=2.2.4</generator>
		<language></language>

		
														
					
				<item>
					<guid>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-30094</guid>
					<title><![CDATA[bug report: td.rota.jxs]]></title>
					<link>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-30094</link>
					<pubDate>Fri, 02 Feb 2007 21:51:51 +0000</pubDate>
					<dc:creator>joshua goldberg</dc:creator>

					<description>
						<![CDATA[
						<p>i cannot get anything but black out of jit.gl.slab @file td.rota.jxs,  <br />
in either 1.6.2 or 1.6.3b2.  i was previously able to use this shader  <br />
with no problem, but haven&#8217;t tried in months.</p>
<p>hardware:  1.67Ghz pbg4, os 10.4.8.</p>
<p>can anyone else confirm this?</p>
<p>j</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95410</guid>
					<title><![CDATA[Re: bug report: td.rota.jxs]]></title>
					<link>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95410</link>
					<pubDate>Sat, 03 Feb 2007 17:58:20 +0000</pubDate>
					<dc:creator>Joshua Kit Clayton</dc:creator>

					<description>
						<![CDATA[
						<p>
On Feb 2, 2007, at 1:51 PM, joshua goldberg wrote:</p>
<p>> i cannot get anything but black out of jit.gl.slab @file  <br />
> td.rota.jxs, in either 1.6.2 or 1.6.3b2.  i was previously able to  <br />
> use this shader with no problem, but haven&#8217;t tried in months.<br />
><br />
> hardware:  1.67Ghz pbg4, os 10.4.8.</p>
<p>Search the forum. There&#8217;s two versions. One for old HW like you have  <br />
and one for new HW. AB has posted them both to the list, I believe.</p>
<p>-Joshua</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95411</guid>
					<title><![CDATA[Re: bug report: td.rota.jxs]]></title>
					<link>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95411</link>
					<pubDate>Sat, 03 Feb 2007 18:57:45 +0000</pubDate>
					<dc:creator>joshua goldberg</dc:creator>

					<description>
						<![CDATA[
						<p>i&#8217;ve now tried both the old version and the new version and i still  <br />
get black.</p>
<p>anyone out there with my model powerbook able to confirm my problem?</p>
<p>On Feb 3, 2007, at 12:58 PM, Joshua Kit Clayton wrote:</p>
<p>><br />
> On Feb 2, 2007, at 1:51 PM, joshua goldberg wrote:<br />
><br />
>> i cannot get anything but black out of jit.gl.slab @file  <br />
>> td.rota.jxs, in either 1.6.2 or 1.6.3b2.  i was previously able to  <br />
>> use this shader with no problem, but haven&#8217;t tried in months.<br />
>><br />
>> hardware:  1.67Ghz pbg4, os 10.4.8.<br />
><br />
> Search the forum. There&#8217;s two versions. One for old HW like you  <br />
> have and one for new HW. AB has posted them both to the list, I  <br />
> believe.<br />
><br />
> -Joshua<br />
></p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95412</guid>
					<title><![CDATA[Re: bug report: td.rota.jxs]]></title>
					<link>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95412</link>
					<pubDate>Sat, 03 Feb 2007 19:10:01 +0000</pubDate>
					<dc:creator>Wesley Smith</dc:creator>

					<description>
						<![CDATA[
						<p>I have the same setup and the shader works here.  This was using Jitter 1.6.2.</p>
<p>Here&#8217;s the shader:</p>
<p>
<jittershader name="rotation shader"><br />
	<description><br />
	kaleidoscope<br />
	</description></jittershader></p>
<param name="zoom" type="vec2" default="1. 1." />
<param name="offset" type="vec2" default="0. 0." />
<param name="theta" type="float" default="0." />
<param name="anchor" type="vec2" default="0.5 0.5" />
<param name="boundmode" type="int" default="0" />
<param name="tex0" type="int" default="0" />
<param name="tex1" type="int" default="1" />
	<language name="glsl" version="1.0"><br />
		<bind param="zoom" program="vp"></bind><br />
		<bind param="offset" program="vp"></bind><br />
		<bind param="theta" program="vp"></bind><br />
		<bind param="anchor" program="vp"></bind><br />
		<bind param="boundmode" program="vp"></bind><br />
		<bind param="tex0" program="fp"></bind><br />
		<bind param="tex1" program="fp"></bind>
<program name="vp" type="vertex">
< ![CDATA[</p>
<p>varying vec2 texcoord0;<br />
varying vec2 texcoord1;<br />
varying vec2 texdim0;<br />
varying vec2 texdim1;<br />
varying vec2 texorient0;<br />
varying vec2 texorient1;<br />
varying vec2 no;<br />
varying float bound_is_0;<br />
varying float bound_is_1;<br />
varying float bound_is_2;<br />
varying float bound_is_3;<br />
varying float bound_is_4;<br />
varying float bound_is_0_1_3;<br />
varying float bound_not_1;</p>
<p>uniform vec2 zoom;<br />
uniform vec2 offset;<br />
uniform float theta;<br />
uniform vec2 anchor;<br />
uniform int boundmode;</p>
<p>void main()<br />
{<br />
    // perform standard transform on vertex<br />
    gl_Position = ftransform();</p>
<p>    // transform texcoords<br />
    texcoord0 = vec2(gl_TextureMatrix[0] * gl_MultiTexCoord0);<br />
    texcoord1 = vec2(gl_TextureMatrix[1] * gl_MultiTexCoord1);<br />
    // extract the x and y scalars from the texture matrix to<br />
determine dimensions<br />
    texdim0 = vec2<br />
(abs(gl_TextureMatrix[0][0][0]),abs(gl_TextureMatrix[0][1][1]));<br />
    texdim1 = vec2<br />
(abs(gl_TextureMatrix[1][0][0]),abs(gl_TextureMatrix[1][1][1]));<br />
    // extract the sign for orientation<br />
    texorient0 = vec2<br />
(gl_TextureMatrix[0][0][0]/texdim0.x,gl_TextureMatrix[0][1][1]/texdim0.y);<br />
    texorient1 = vec2<br />
(gl_TextureMatrix[1][0][0]/texdim1.x,gl_TextureMatrix[1][1][1]/texdim1.y);</p>
<p>	// perform rota transform (since linear, more efficient to do in<br />
vertex program)<br />
	mat2 sca = mat2 (1./zoom.x,0.,0.,1./zoom.y);//scaling matrix (zoom)<br />
	mat2 rot = mat2<br />
(cos(theta),sin(theta),-sin(theta),cos(theta));//rotation matrix<br />
	no = ((((texcoord0-anchor*texdim0)*rot)*sca)+anchor*texdim0)+offset;</p>
<p>	// setup our boundmode boolean scalars to reduce fragment program<br />
instruction count<br />
	bound_is_0 = float (boundmode==0);<br />
	bound_is_1 = float (boundmode==1);<br />
	bound_is_2 = float (boundmode==2);<br />
	bound_is_3 = float (boundmode==3);<br />
	bound_is_4 = float (boundmode==4);<br />
	bound_is_0_1_3 = float ((boundmode==0)||(boundmode==1)||(boundmode==3));<br />
	bound_not_1 = float (boundmode!=1);</p>
<p>}</p>
<p>]]>
		</p></program>
<program name="fp" type="fragment">
< ![CDATA[</p>
<p>//setup for 2 texture<br />
varying vec2 texcoord0;<br />
varying vec2 texcoord1;<br />
varying vec2 texdim0;<br />
varying vec2 no;<br />
varying float bound_is_0;<br />
varying float bound_is_1;<br />
varying float bound_is_2;<br />
varying float bound_is_3;<br />
varying float bound_is_4;<br />
varying float bound_is_0_1_3;<br />
varying float bound_not_1;</p>
<p>uniform sampler2DRect tex0;<br />
uniform sampler2DRect tex1;<br />
const float pi=3.1415926;</p>
<p>void main()<br />
{<br />
	// where is the point?<br />
	vec2 sizea = texdim0;</p>
<p>	//create boundmodes<br />
	vec2 no2 = mod(mod(no,sizea)+sizea,sizea);//wrap	</p>
<p>	vec2 no4 = mod(abs(no),sizea*2.);//folded coords<br />
	no4 = sizea-abs(no4-sizea);</p>
<p>	// sampler coord<br />
	vec2 tc = no*bound_is_0_1_3 + no2*bound_is_2 + no4*bound_is_4;</p>
<p>	//sample textures<br />
	vec4 smp0 = texture2DRect(tex0,tc);<br />
	vec4 smp1 = texture2DRect(tex1,sizea-texcoord0);</p>
<p>	vec2 outbound = sign(floor(no/sizea));//check for point>size<br />
	float boundchk = float(sign(float(outbound.x!=0.)+float(outbound.y!=0.)));<br />
	float checkm0 = bound_is_0*boundchk;<br />
	float checkm1 = bound_is_1*float(boundchk==0.);<br />
	vec4 ifb0 = mix(smp0,smp1,checkm0);//ignore<br />
	vec4 final = ifb0*bound_not_1 + ifb0*float(checkm1==1.);//clear</p>
<p>	// output texture<br />
	gl_FragColor = final;<br />
}<br />
]]>
		</p></program>
	</language><br />

<p>
wes</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95413</guid>
					<title><![CDATA[Re: bug report: td.rota.jxs]]></title>
					<link>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95413</link>
					<pubDate>Sat, 03 Feb 2007 19:19:54 +0000</pubDate>
					<dc:creator>Joshua Kit Clayton</dc:creator>

					<description>
						<![CDATA[
						<p>
On Feb 3, 2007, at 10:57 AM, joshua goldberg wrote:</p>
<p>> i&#8217;ve now tried both the old version and the new version and i still  <br />
> get black.<br />
> anyone out there with my model powerbook able to confirm my problem?</p>
<p>
Here&#8217;s the one that works on the radeon mobility cards in your  <br />
machine (and basically nothing else). If it still doesn&#8217;t work, you  <br />
might need to add some typecasts to work with the 10.4.3 and later  <br />
built in GLSL compiler.</p>
<p>Would recommend you save to disk renaming td.rota.radeon9700.jxs or  <br />
something.</p>
<p>If you don&#8217;t care about all the boundmode logic, it&#8217;s easy to make  <br />
one that works everywhere. We mostly provide these shaders as  <br />
examples, rather than guaranteed functionality across all HW, so I&#8217;d  <br />
recommend you get your hands dirty with learning how to code shaders  <br />
if you want to make sure you can get them working on whatever machine  <br />
you see fit.</p>
<p>Good luck.</p>
<p>-Joshua</p>
<p>
<jittershader name="rotation shader"><br />
	<description><br />
	shader to approximate jit.rota on GPU<br />
	</description></jittershader></p>
<param name="zoom" type="vec2" default="1. 1." />
<param name="offset" type="vec2" default="0. 0." />
<param name="theta" type="float" default="0." />
<param name="anchor" type="vec2" default="0.5 0.5" />
<param name="boundmode" type="int" default="0" />
<param name="tex0" type="int" default="0" />
<param name="tex1" type="int" default="1" />
	<language name="glsl" version="1.0"><br />
		<bind param="zoom" program="vp"></bind><br />
		<bind param="offset" program="vp"></bind><br />
		<bind param="theta" program="vp"></bind><br />
		<bind param="anchor" program="vp"></bind><br />
		<bind param="boundmode" program="vp"></bind><br />
		<bind param="tex0" program="fp"></bind><br />
		<bind param="tex1" program="fp"></bind>
<program name="vp" type="vertex">
< ![CDATA[</p>
<p>varying vec2 texcoord0;<br />
varying vec2 texcoord1;<br />
varying vec2 texdim0;<br />
varying vec2 texdim1;<br />
varying vec2 texorient0;<br />
varying vec2 texorient1;<br />
varying vec2 no;<br />
varying float bound_is_0;<br />
varying float bound_is_1;<br />
varying float bound_is_2;<br />
varying float bound_is_3;<br />
varying float bound_is_4;<br />
varying float bound_is_0_1_3;<br />
varying float bound_not_1;</p>
<p>uniform vec2 zoom;<br />
uniform vec2 offset;<br />
uniform float theta;<br />
uniform vec2 anchor;<br />
uniform int boundmode;</p>
<p>void main()<br />
{<br />
     // perform standard transform on vertex<br />
     gl_Position = ftransform();</p>
<p>     // transform texcoords<br />
     texcoord0 = vec2(gl_TextureMatrix[0] * gl_MultiTexCoord0);<br />
     texcoord1 = vec2(gl_TextureMatrix[1] * gl_MultiTexCoord1);<br />
     // extract the x and y scalars from the texture matrix to  <br />
determine dimensions<br />
     texdim0 = vec2 (abs(gl_TextureMatrix[0][0][0]),abs <br />
(gl_TextureMatrix[0][1][1]));<br />
     texdim1 = vec2 (abs(gl_TextureMatrix[1][0][0]),abs <br />
(gl_TextureMatrix[1][1][1]));<br />
     // extract the sign for orientation<br />
     texorient0 = vec2 (gl_TextureMatrix[0][0][0]/ <br />
texdim0.x,gl_TextureMatrix[0][1][1]/texdim0.y);<br />
     texorient1 = vec2 (gl_TextureMatrix[1][0][0]/ <br />
texdim1.x,gl_TextureMatrix[1][1][1]/texdim1.y);</p>
<p>	// perform rota transform (since linear, more efficient to do in  <br />
vertex program)<br />
	mat2 sca = mat2 (1./zoom.x,0.,0.,1./zoom.y);//scaling matrix (zoom)<br />
	mat2 rot = mat2 (cos(theta),sin(theta),-sin(theta),cos(theta));// <br />
rotation matrix<br />
	no = ((((texcoord0-anchor*texdim0)*rot)*sca)+anchor*texdim0)+offset;</p>
<p>	// setup our boundmode boolean scalars to reduce fragment program  <br />
instruction count	<br />
	bound_is_0 = float (boundmode==0);<br />
	bound_is_1 = float (boundmode==1);<br />
	bound_is_2 = float (boundmode==2);<br />
	bound_is_3 = float (boundmode==3);<br />
	bound_is_4 = float (boundmode==4);<br />
	bound_is_0_1_3 = float ((boundmode==0)||(boundmode==1)|| <br />
(boundmode==3));<br />
	bound_not_1 = float (boundmode!=1);</p>
<p>}</p>
<p>]]>
		</p></program>
<program name="fp" type="fragment">
< ![CDATA[</p>
<p>//setup for 2 texture<br />
varying vec2 texcoord0;<br />
varying vec2 texcoord1;<br />
varying vec2 texdim0;<br />
varying vec2 no;<br />
varying float bound_is_0;<br />
varying float bound_is_1;<br />
varying float bound_is_2;<br />
varying float bound_is_3;<br />
varying float bound_is_4;<br />
varying float bound_is_0_1_3;<br />
varying float bound_not_1;</p>
<p>uniform sampler2DRect tex0;<br />
uniform sampler2DRect tex1;<br />
const float pi=3.1415926;</p>
<p>void main()<br />
{<br />
	// where is the point?<br />
	vec2 sizea = texdim0;</p>
<p>	//create boundmodes<br />
	vec2 no2 = mod(mod(no,sizea)+sizea,sizea);//wrap	</p>
<p>	vec2 no4 = mod(abs(no),sizea*2.);//folded coords<br />
	no4 = sizea-abs(no4-sizea);</p>
<p>	// sampler coord<br />
	vec2 tc = no*bound_is_0_1_3 + no2*bound_is_2 + no4*bound_is_4;</p>
<p>	//sample textures<br />
	vec4 smp0 = texture2DRect(tex0,tc);<br />
	vec4 smp1 = texture2DRect(tex1,texcoord1);</p>
<p>	vec2 outbound = sign(floor(no/sizea));//check for point>size<br />
	float boundchk = float(sign(float(outbound.x!=0.)+float(outbound.y! <br />
=0.)));<br />
	float checkm0 = bound_is_0*boundchk;<br />
	float checkm1 = bound_is_1*float(boundchk==0.);<br />
	vec4 ifb0 = mix(smp0,smp1,checkm0);//ignore<br />
	vec4 final = ifb0*bound_not_1 + ifb0*float(checkm1==1.);//clear</p>
<p>	// output texture<br />
	gl_FragColor = final;<br />
}<br />
]]>
		</p></program>
	</language><br />

						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95414</guid>
					<title><![CDATA[Re: bug report: td.rota.jxs]]></title>
					<link>http://cycling74.com/forums/topic/bug-report-td-rota-jxs/#post-95414</link>
					<pubDate>Sat, 03 Feb 2007 19:26:22 +0000</pubDate>
					<dc:creator>joshua goldberg</dc:creator>

					<description>
						<![CDATA[
						<p>this one works!  THANKS GUYS!</p>
<p>On Feb 3, 2007, at 2:19 PM, Joshua Kit Clayton wrote:</p>
<p>><br />
> On Feb 3, 2007, at 10:57 AM, joshua goldberg wrote:<br />
><br />
>> i&#8217;ve now tried both the old version and the new version and i  <br />
>> still get black.<br />
>> anyone out there with my model powerbook able to confirm my problem?<br />
><br />
><br />
> Here&#8217;s the one that works on the radeon mobility cards in your  <br />
> machine (and basically nothing else). If it still doesn&#8217;t work, you  <br />
> might need to add some typecasts to work with the 10.4.3 and later  <br />
> built in GLSL compiler.<br />
><br />
> Would recommend you save to disk renaming td.rota.radeon9700.jxs or  <br />
> something.<br />
><br />
> If you don&#8217;t care about all the boundmode logic, it&#8217;s easy to make  <br />
> one that works everywhere. We mostly provide these shaders as  <br />
> examples, rather than guaranteed functionality across all HW, so  <br />
> I&#8217;d recommend you get your hands dirty with learning how to code  <br />
> shaders if you want to make sure you can get them working on  <br />
> whatever machine you see fit.<br />
><br />
> Good luck.<br />
><br />
> -Joshua<br />
><br />
><br />
> <jittershader name="rotation shader"><br />
> 	<description><br />
> 	shader to approximate jit.rota on GPU<br />
> 	</description><br />
>
<param name="zoom" type="vec2" default="1. 1." />
>
<param name="offset" type="vec2" default="0. 0." />
>
<param name="theta" type="float" default="0." />
>
<param name="anchor" type="vec2" default="0.5 0.5" />
>
<param name="boundmode" type="int" default="0" />
>
<param name="tex0" type="int" default="0" />
>
<param name="tex1" type="int" default="1" />
> 	<language name="glsl" version="1.0"><br />
> 		<bind param="zoom" program="vp"></bind><br />
> 		<bind param="offset" program="vp"></bind><br />
> 		<bind param="theta" program="vp"></bind><br />
> 		<bind param="anchor" program="vp"></bind><br />
> 		<bind param="boundmode" program="vp"></bind><br />
> 		<bind param="tex0" program="fp"></bind><br />
> 		<bind param="tex1" program="fp"></bind><br />
>
<program name="vp" type="vertex">
> < ![CDATA[<br />
><br />
> varying vec2 texcoord0;<br />
> varying vec2 texcoord1;<br />
> varying vec2 texdim0;<br />
> varying vec2 texdim1;<br />
> varying vec2 texorient0;<br />
> varying vec2 texorient1;<br />
> varying vec2 no;<br />
> varying float bound_is_0;<br />
> varying float bound_is_1;<br />
> varying float bound_is_2;<br />
> varying float bound_is_3;<br />
> varying float bound_is_4;<br />
> varying float bound_is_0_1_3;<br />
> varying float bound_not_1;<br />
><br />
> uniform vec2 zoom;<br />
> uniform vec2 offset;<br />
> uniform float theta;<br />
> uniform vec2 anchor;<br />
> uniform int boundmode;<br />
><br />
> void main()<br />
> {<br />
>     // perform standard transform on vertex<br />
>     gl_Position = ftransform();<br />
><br />
>     // transform texcoords<br />
>     texcoord0 = vec2(gl_TextureMatrix[0] * gl_MultiTexCoord0);<br />
>     texcoord1 = vec2(gl_TextureMatrix[1] * gl_MultiTexCoord1);<br />
>     // extract the x and y scalars from the texture matrix to  <br />
> determine dimensions<br />
>     texdim0 = vec2 (abs(gl_TextureMatrix[0][0][0]),abs <br />
> (gl_TextureMatrix[0][1][1]));<br />
>     texdim1 = vec2 (abs(gl_TextureMatrix[1][0][0]),abs <br />
> (gl_TextureMatrix[1][1][1]));<br />
>     // extract the sign for orientation<br />
>     texorient0 = vec2 (gl_TextureMatrix[0][0][0]/ <br />
> texdim0.x,gl_TextureMatrix[0][1][1]/texdim0.y);<br />
>     texorient1 = vec2 (gl_TextureMatrix[1][0][0]/ <br />
> texdim1.x,gl_TextureMatrix[1][1][1]/texdim1.y);<br />
><br />
> 	// perform rota transform (since linear, more efficient to do in  <br />
> vertex program)<br />
> 	mat2 sca = mat2 (1./zoom.x,0.,0.,1./zoom.y);//scaling matrix (zoom)<br />
> 	mat2 rot = mat2 (cos(theta),sin(theta),-sin(theta),cos(theta));// <br />
> rotation matrix<br />
> 	no = ((((texcoord0-anchor*texdim0)*rot)*sca)+anchor*texdim0)+offset;<br />
><br />
> 	// setup our boundmode boolean scalars to reduce fragment program  <br />
> instruction count	<br />
> 	bound_is_0 = float (boundmode==0);<br />
> 	bound_is_1 = float (boundmode==1);<br />
> 	bound_is_2 = float (boundmode==2);<br />
> 	bound_is_3 = float (boundmode==3);<br />
> 	bound_is_4 = float (boundmode==4);<br />
> 	bound_is_0_1_3 = float ((boundmode==0)||(boundmode==1)|| <br />
> (boundmode==3));<br />
> 	bound_not_1 = float (boundmode!=1);<br />
><br />
> }<br />
><br />
> ]]><br />
> 		</program>
>
<program name="fp" type="fragment">
> < ![CDATA[<br />
><br />
> //setup for 2 texture<br />
> varying vec2 texcoord0;<br />
> varying vec2 texcoord1;<br />
> varying vec2 texdim0;<br />
> varying vec2 no;<br />
> varying float bound_is_0;<br />
> varying float bound_is_1;<br />
> varying float bound_is_2;<br />
> varying float bound_is_3;<br />
> varying float bound_is_4;<br />
> varying float bound_is_0_1_3;<br />
> varying float bound_not_1;<br />
><br />
> uniform sampler2DRect tex0;<br />
> uniform sampler2DRect tex1;<br />
> const float pi=3.1415926;<br />
><br />
> void main()<br />
> {<br />
> 	// where is the point?<br />
> 	vec2 sizea = texdim0;<br />
> 	<br />
> 	//create boundmodes<br />
> 	vec2 no2 = mod(mod(no,sizea)+sizea,sizea);//wrap	<br />
> 	<br />
> 	vec2 no4 = mod(abs(no),sizea*2.);//folded coords<br />
> 	no4 = sizea-abs(no4-sizea);<br />
> 	<br />
> 	// sampler coord<br />
> 	vec2 tc = no*bound_is_0_1_3 + no2*bound_is_2 + no4*bound_is_4;<br />
> 	<br />
> 	//sample textures<br />
> 	vec4 smp0 = texture2DRect(tex0,tc);<br />
> 	vec4 smp1 = texture2DRect(tex1,texcoord1);<br />
> 	<br />
> 	vec2 outbound = sign(floor(no/sizea));//check for point>size<br />
> 	float boundchk = float(sign(float(outbound.x!=0.)+float(outbound.y! <br />
> =0.)));<br />
> 	float checkm0 = bound_is_0*boundchk;<br />
> 	float checkm1 = bound_is_1*float(boundchk==0.);<br />
> 	vec4 ifb0 = mix(smp0,smp1,checkm0);//ignore<br />
> 	vec4 final = ifb0*bound_not_1 + ifb0*float(checkm1==1.);//clear<br />
> 	<br />
> 	// output texture<br />
> 	gl_FragColor = final;<br />
> }<br />
> ]]><br />
> 		</program>
> 	</language><br />
> </jittershader><br />
></p>
						]]>
					</description>

					
					
				</item>

					
		
	</channel>
	</rss>

