kernel NewFilter < namespace : ""; vendor : ""; version : 1; description : "Macro loop during compilation."; > { input image4 src; output pixel4 dst; // Forged from MrKishi's code //if we had concatenation support like c, it'd be possible //to define a macro to expand to the appropriate loop // //#define REPEAT(macro, times) REPEAT_##times(macro) // //we don't, so... #define REPEAT_1(macro) macro(1) #define REPEAT_2(macro) REPEAT_1(macro) macro(2) #define REPEAT_3(macro) REPEAT_2(macro) macro(3) #define REPEAT_4(macro) REPEAT_3(macro) macro(4) #define REPEAT_5(macro) REPEAT_4(macro) macro(5) #define REPEAT_6(macro) REPEAT_5(macro) macro(6) #define REPEAT_7(macro) REPEAT_6(macro) macro(7) #define REPEAT_8(macro) REPEAT_7(macro) macro(8) #define REPEAT_9(macro) REPEAT_8(macro) macro(9) #define REPEAT_10(macro) REPEAT_9(macro) macro(10) #define REPEAT_11(macro) REPEAT_10(macro) macro(11) #define REPEAT_12(macro) REPEAT_11(macro) macro(12) #define REPEAT_13(macro) REPEAT_12(macro) macro(13) #define REPEAT_14(macro) REPEAT_13(macro) macro(14) #define REPEAT_15(macro) REPEAT_14(macro) macro(15) #define REPEAT_16(macro) REPEAT_15(macro) macro(16) #define REPEAT_17(macro) REPEAT_16(macro) macro(17) #define REPEAT_18(macro) REPEAT_17(macro) macro(18) #define REPEAT_19(macro) REPEAT_18(macro) macro(19) #define REPEAT_20(macro) REPEAT_19(macro) macro(20) #define REPEAT_21(macro) REPEAT_20(macro) macro(21) #define REPEAT_22(macro) REPEAT_21(macro) macro(22) #define REPEAT_23(macro) REPEAT_22(macro) macro(23) #define REPEAT_24(macro) REPEAT_23(macro) macro(24) #define REPEAT_25(macro) REPEAT_24(macro) macro(25) #define REPEAT_26(macro) REPEAT_25(macro) macro(26) #define REPEAT_27(macro) REPEAT_26(macro) macro(27) #define REPEAT_28(macro) REPEAT_27(macro) macro(28) #define REPEAT_29(macro) REPEAT_28(macro) macro(29) #define REPEAT_30(macro) REPEAT_29(macro) macro(30) #define REPEAT_31(macro) REPEAT_30(macro) macro(31) #define REPEAT_32(macro) REPEAT_31(macro) macro(32) #define REPEAT_33(macro) REPEAT_32(macro) macro(33) #define REPEAT_34(macro) REPEAT_33(macro) macro(34) #define REPEAT_35(macro) REPEAT_34(macro) macro(35) #define REPEAT_36(macro) REPEAT_35(macro) macro(36) #define REPEAT_37(macro) REPEAT_36(macro) macro(37) #define REPEAT_38(macro) REPEAT_37(macro) macro(38) #define REPEAT_39(macro) REPEAT_38(macro) macro(39) #define REPEAT_40(macro) REPEAT_39(macro) macro(40) #define REPEAT_41(macro) REPEAT_40(macro) macro(41) #define REPEAT_42(macro) REPEAT_41(macro) macro(42) #define REPEAT_43(macro) REPEAT_42(macro) macro(43) #define REPEAT_44(macro) REPEAT_43(macro) macro(44) #define REPEAT_45(macro) REPEAT_44(macro) macro(45) #define REPEAT_46(macro) REPEAT_45(macro) macro(46) #define REPEAT_47(macro) REPEAT_46(macro) macro(47) #define REPEAT_48(macro) REPEAT_47(macro) macro(48) #define REPEAT_49(macro) REPEAT_48(macro) macro(49) #define REPEAT_50(macro) REPEAT_49(macro) macro(50) #define REPEAT_51(macro) REPEAT_50(macro) macro(51) #define REPEAT_52(macro) REPEAT_51(macro) macro(52) #define REPEAT_53(macro) REPEAT_52(macro) macro(53) #define REPEAT_54(macro) REPEAT_53(macro) macro(54) #define REPEAT_55(macro) REPEAT_54(macro) macro(55) #define REPEAT_56(macro) REPEAT_55(macro) macro(56) #define REPEAT_57(macro) REPEAT_56(macro) macro(57) #define REPEAT_58(macro) REPEAT_57(macro) macro(58) #define REPEAT_59(macro) REPEAT_58(macro) macro(59) #define REPEAT_60(macro) REPEAT_59(macro) macro(60) #define REPEAT_61(macro) REPEAT_60(macro) macro(61) #define REPEAT_62(macro) REPEAT_61(macro) macro(62) #define REPEAT_63(macro) REPEAT_62(macro) macro(63) #define REPEAT_64(macro) REPEAT_63(macro) macro(64) #define REPEAT_65(macro) REPEAT_64(macro) macro(65) #define REPEAT_66(macro) REPEAT_65(macro) macro(66) #define REPEAT_67(macro) REPEAT_66(macro) macro(67) #define REPEAT_68(macro) REPEAT_67(macro) macro(68) #define REPEAT_69(macro) REPEAT_68(macro) macro(69) #define REPEAT_70(macro) REPEAT_69(macro) macro(70) #define REPEAT_71(macro) REPEAT_70(macro) macro(71) #define REPEAT_72(macro) REPEAT_71(macro) macro(72) #define REPEAT_73(macro) REPEAT_72(macro) macro(73) #define REPEAT_74(macro) REPEAT_73(macro) macro(74) #define REPEAT_75(macro) REPEAT_74(macro) macro(75) #define REPEAT_76(macro) REPEAT_75(macro) macro(76) #define REPEAT_77(macro) REPEAT_76(macro) macro(77) #define REPEAT_78(macro) REPEAT_77(macro) macro(78) #define REPEAT_79(macro) REPEAT_78(macro) macro(79) #define REPEAT_80(macro) REPEAT_79(macro) macro(80) #define REPEAT_81(macro) REPEAT_80(macro) macro(81) #define REPEAT_82(macro) REPEAT_81(macro) macro(82) #define REPEAT_83(macro) REPEAT_82(macro) macro(83) #define REPEAT_84(macro) REPEAT_83(macro) macro(84) #define REPEAT_85(macro) REPEAT_84(macro) macro(85) #define REPEAT_86(macro) REPEAT_85(macro) macro(86) #define REPEAT_87(macro) REPEAT_86(macro) macro(87) #define REPEAT_88(macro) REPEAT_87(macro) macro(88) #define REPEAT_89(macro) REPEAT_88(macro) macro(89) #define REPEAT_90(macro) REPEAT_89(macro) macro(90) #define REPEAT_91(macro) REPEAT_90(macro) macro(91) #define REPEAT_92(macro) REPEAT_91(macro) macro(92) #define REPEAT_93(macro) REPEAT_92(macro) macro(93) #define REPEAT_94(macro) REPEAT_93(macro) macro(94) #define REPEAT_95(macro) REPEAT_94(macro) macro(95) #define REPEAT_96(macro) REPEAT_95(macro) macro(96) #define REPEAT_97(macro) REPEAT_96(macro) macro(97) #define REPEAT_98(macro) REPEAT_97(macro) macro(98) #define REPEAT_99(macro) REPEAT_98(macro) macro(99) #define REPEAT_100(macro) REPEAT_99(macro) macro(100) #define REPEAT_101(macro) REPEAT_100(macro) macro(101) #define REPEAT_102(macro) REPEAT_101(macro) macro(102) #define REPEAT_103(macro) REPEAT_102(macro) macro(103) #define REPEAT_104(macro) REPEAT_103(macro) macro(104) #define REPEAT_105(macro) REPEAT_104(macro) macro(105) #define REPEAT_106(macro) REPEAT_105(macro) macro(106) #define REPEAT_107(macro) REPEAT_106(macro) macro(107) #define REPEAT_108(macro) REPEAT_107(macro) macro(108) #define REPEAT_109(macro) REPEAT_108(macro) macro(109) #define REPEAT_110(macro) REPEAT_109(macro) macro(110) #define REPEAT_111(macro) REPEAT_110(macro) macro(111) #define REPEAT_112(macro) REPEAT_111(macro) macro(112) #define REPEAT_113(macro) REPEAT_112(macro) macro(113) #define REPEAT_114(macro) REPEAT_113(macro) macro(114) #define REPEAT_115(macro) REPEAT_114(macro) macro(115) #define REPEAT_116(macro) REPEAT_115(macro) macro(116) #define REPEAT_117(macro) REPEAT_116(macro) macro(117) #define REPEAT_118(macro) REPEAT_117(macro) macro(118) #define REPEAT_119(macro) REPEAT_118(macro) macro(119) #define REPEAT_120(macro) REPEAT_119(macro) macro(120) #define REPEAT_121(macro) REPEAT_120(macro) macro(121) #define REPEAT_122(macro) REPEAT_121(macro) macro(122) #define REPEAT_123(macro) REPEAT_122(macro) macro(123) #define REPEAT_124(macro) REPEAT_123(macro) macro(124) #define REPEAT_125(macro) REPEAT_124(macro) macro(125) #define REPEAT_126(macro) REPEAT_125(macro) macro(126) #define REPEAT_127(macro) REPEAT_126(macro) macro(127) #define REPEAT_128(macro) REPEAT_127(macro) macro(128) #define REPEAT_129(macro) REPEAT_128(macro) macro(129) #define REPEAT_130(macro) REPEAT_129(macro) macro(130) #define REPEAT_131(macro) REPEAT_130(macro) macro(131) #define REPEAT_132(macro) REPEAT_131(macro) macro(132) #define REPEAT_133(macro) REPEAT_132(macro) macro(133) #define REPEAT_134(macro) REPEAT_133(macro) macro(134) #define REPEAT_135(macro) REPEAT_134(macro) macro(135) #define REPEAT_136(macro) REPEAT_135(macro) macro(136) #define REPEAT_137(macro) REPEAT_136(macro) macro(137) #define REPEAT_138(macro) REPEAT_137(macro) macro(138) #define REPEAT_139(macro) REPEAT_138(macro) macro(139) #define REPEAT_140(macro) REPEAT_139(macro) macro(140) #define REPEAT_141(macro) REPEAT_140(macro) macro(141) #define REPEAT_142(macro) REPEAT_141(macro) macro(142) #define REPEAT_143(macro) REPEAT_142(macro) macro(143) #define REPEAT_144(macro) REPEAT_143(macro) macro(144) #define REPEAT_145(macro) REPEAT_144(macro) macro(145) #define REPEAT_146(macro) REPEAT_145(macro) macro(146) #define REPEAT_147(macro) REPEAT_146(macro) macro(147) #define REPEAT_148(macro) REPEAT_147(macro) macro(148) #define REPEAT_149(macro) REPEAT_148(macro) macro(149) #define REPEAT_150(macro) REPEAT_149(macro) macro(150) #define REPEAT_151(macro) REPEAT_150(macro) macro(151) #define REPEAT_152(macro) REPEAT_151(macro) macro(152) #define REPEAT_153(macro) REPEAT_152(macro) macro(153) #define REPEAT_154(macro) REPEAT_153(macro) macro(154) #define REPEAT_155(macro) REPEAT_154(macro) macro(155) #define REPEAT_156(macro) REPEAT_155(macro) macro(156) #define REPEAT_157(macro) REPEAT_156(macro) macro(157) #define REPEAT_158(macro) REPEAT_157(macro) macro(158) #define REPEAT_159(macro) REPEAT_158(macro) macro(159) #define REPEAT_160(macro) REPEAT_159(macro) macro(160) #define REPEAT_161(macro) REPEAT_160(macro) macro(161) #define REPEAT_162(macro) REPEAT_161(macro) macro(162) #define REPEAT_163(macro) REPEAT_162(macro) macro(163) #define REPEAT_164(macro) REPEAT_163(macro) macro(164) #define REPEAT_165(macro) REPEAT_164(macro) macro(165) #define REPEAT_166(macro) REPEAT_165(macro) macro(166) #define REPEAT_167(macro) REPEAT_166(macro) macro(167) #define REPEAT_168(macro) REPEAT_167(macro) macro(168) #define REPEAT_169(macro) REPEAT_168(macro) macro(169) #define REPEAT_170(macro) REPEAT_169(macro) macro(170) #define REPEAT_171(macro) REPEAT_170(macro) macro(171) #define REPEAT_172(macro) REPEAT_171(macro) macro(172) #define REPEAT_173(macro) REPEAT_172(macro) macro(173) #define REPEAT_174(macro) REPEAT_173(macro) macro(174) #define REPEAT_175(macro) REPEAT_174(macro) macro(175) #define REPEAT_176(macro) REPEAT_175(macro) macro(176) #define REPEAT_177(macro) REPEAT_176(macro) macro(177) #define REPEAT_178(macro) REPEAT_177(macro) macro(178) #define REPEAT_179(macro) REPEAT_178(macro) macro(179) #define REPEAT_180(macro) REPEAT_179(macro) macro(180) #define REPEAT_181(macro) REPEAT_180(macro) macro(181) #define REPEAT_182(macro) REPEAT_181(macro) macro(182) #define REPEAT_183(macro) REPEAT_182(macro) macro(183) #define REPEAT_184(macro) REPEAT_183(macro) macro(184) #define REPEAT_185(macro) REPEAT_184(macro) macro(185) #define REPEAT_186(macro) REPEAT_185(macro) macro(186) #define REPEAT_187(macro) REPEAT_186(macro) macro(187) #define REPEAT_188(macro) REPEAT_187(macro) macro(188) #define REPEAT_189(macro) REPEAT_188(macro) macro(189) #define REPEAT_190(macro) REPEAT_189(macro) macro(190) #define REPEAT_191(macro) REPEAT_190(macro) macro(191) #define REPEAT_192(macro) REPEAT_191(macro) macro(192) #define REPEAT_193(macro) REPEAT_192(macro) macro(193) #define REPEAT_194(macro) REPEAT_193(macro) macro(194) #define REPEAT_195(macro) REPEAT_194(macro) macro(195) #define REPEAT_196(macro) REPEAT_195(macro) macro(196) #define REPEAT_197(macro) REPEAT_196(macro) macro(197) #define REPEAT_198(macro) REPEAT_197(macro) macro(198) #define REPEAT_199(macro) REPEAT_198(macro) macro(199) #define REPEAT_200(macro) REPEAT_199(macro) macro(200) #define REPEAT_201(macro) REPEAT_200(macro) macro(201) #define REPEAT_202(macro) REPEAT_201(macro) macro(202) #define REPEAT_203(macro) REPEAT_202(macro) macro(203) #define REPEAT_204(macro) REPEAT_203(macro) macro(204) #define REPEAT_205(macro) REPEAT_204(macro) macro(205) #define REPEAT_206(macro) REPEAT_205(macro) macro(206) #define REPEAT_207(macro) REPEAT_206(macro) macro(207) #define REPEAT_208(macro) REPEAT_207(macro) macro(208) #define REPEAT_209(macro) REPEAT_208(macro) macro(209) #define REPEAT_210(macro) REPEAT_209(macro) macro(210) #define REPEAT_211(macro) REPEAT_210(macro) macro(211) #define REPEAT_212(macro) REPEAT_211(macro) macro(212) #define REPEAT_213(macro) REPEAT_212(macro) macro(213) #define REPEAT_214(macro) REPEAT_213(macro) macro(214) #define REPEAT_215(macro) REPEAT_214(macro) macro(215) #define REPEAT_216(macro) REPEAT_215(macro) macro(216) #define REPEAT_217(macro) REPEAT_216(macro) macro(217) #define REPEAT_218(macro) REPEAT_217(macro) macro(218) #define REPEAT_219(macro) REPEAT_218(macro) macro(219) #define REPEAT_220(macro) REPEAT_219(macro) macro(220) #define REPEAT_221(macro) REPEAT_220(macro) macro(221) #define REPEAT_222(macro) REPEAT_221(macro) macro(222) #define REPEAT_223(macro) REPEAT_222(macro) macro(223) #define REPEAT_224(macro) REPEAT_223(macro) macro(224) #define REPEAT_225(macro) REPEAT_224(macro) macro(225) #define REPEAT_226(macro) REPEAT_225(macro) macro(226) #define REPEAT_227(macro) REPEAT_226(macro) macro(227) #define REPEAT_228(macro) REPEAT_227(macro) macro(228) #define REPEAT_229(macro) REPEAT_228(macro) macro(229) #define REPEAT_230(macro) REPEAT_229(macro) macro(230) #define REPEAT_231(macro) REPEAT_230(macro) macro(231) #define REPEAT_232(macro) REPEAT_231(macro) macro(232) #define REPEAT_233(macro) REPEAT_232(macro) macro(233) #define REPEAT_234(macro) REPEAT_233(macro) macro(234) #define REPEAT_235(macro) REPEAT_234(macro) macro(235) #define REPEAT_236(macro) REPEAT_235(macro) macro(236) #define REPEAT_237(macro) REPEAT_236(macro) macro(237) #define REPEAT_238(macro) REPEAT_237(macro) macro(238) #define REPEAT_239(macro) REPEAT_238(macro) macro(239) #define REPEAT_240(macro) REPEAT_239(macro) macro(240) #define REPEAT_241(macro) REPEAT_240(macro) macro(241) #define REPEAT_242(macro) REPEAT_241(macro) macro(242) #define REPEAT_243(macro) REPEAT_242(macro) macro(243) #define REPEAT_244(macro) REPEAT_243(macro) macro(244) #define REPEAT_245(macro) REPEAT_244(macro) macro(245) #define REPEAT_246(macro) REPEAT_245(macro) macro(246) #define REPEAT_247(macro) REPEAT_246(macro) macro(247) #define REPEAT_248(macro) REPEAT_247(macro) macro(248) #define REPEAT_249(macro) REPEAT_248(macro) macro(249) #define REPEAT_250(macro) REPEAT_249(macro) macro(250) #define REPEAT_251(macro) REPEAT_250(macro) macro(251) #define REPEAT_252(macro) REPEAT_251(macro) macro(252) #define REPEAT_253(macro) REPEAT_252(macro) macro(253) #define REPEAT_254(macro) REPEAT_253(macro) macro(254) #define REPEAT_255(macro) REPEAT_254(macro) macro(255) #define REPEAT_256(macro) REPEAT_255(macro) macro(256) #define callo(i) a += 0.0078125; void evaluatePixel() { float a = 0.0; REPEAT_64(callo); dst = float4(a, a, a, 1.0); } }