Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
EasyAGAL is an open source ActionScript library that simplifies coding assembly language shaders. Advantages include: Code completion and hinting, easier-to-read code, macro libraries -- including trigonometry functions like atan2(), color blending formulas from Photoshop, and more -- ready to use in your own shaders. http://studio.barliesque.com/blog/201…
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
EasyAGAL by David Barlia, email@example.com --------------------------------- Download: http://github.com/Barliesque/EasyAGAL Online documentation: http://barliesque.com/easy_agal/docs/ EasyAGAL is an open source ActionScript library that assists developers in writing AGAL ("Adobe Graphics Assembly Language") by providing an AS3-based pseudo-AGAL command set. The resulting advantages include: * Code completion and hinting * More easy-to-read code * Macros organized into libraries * Dynamic code customization EasyAGAL provides training wheels to learning AGAL as well as a structural foundation for writing shaders for use with any other library. All methods of EasyAGAL maintain the same parameters, in the same order, as AGAL opcodes; They are all documented with ASDoc tags providing help for every instruction and register as you type, including the original AGAL opcodes. CHANGE LOG _________________________________________________________________________________________ 14.Jan.2014 - Corrected parameters passed to kil/killFragment() (Thanks b005t3r for reporting) 31.Aug.2012 - Rewrote Trig.atan2() which had a bug (thanks @nshen for reporting) - Added public access to property "code" which is useful for comments 4.June.2012 - Updated AGALMiniAssembler.as - Removed macro placeholders for seq & sne which are now supported - Updated swc & docs 18.May.2012 - Fixed atan() formula which was incorrect for input values less than 0 (thanks @makc for reporting) - New alias management functions! assign() & unassign() - Added .xy as a standard component selection - Removed unsupported flags from TextureFlag.as 25.Feb.2012 - New example: a shader that renders lighting - Corrected an embarassing number of mistakes in the docs for Blend.as - Added checks to Blend.as where use of the same register for dest and either base or blend color fowls up the calculation 17.Feb.2012 - Updated SWC library - Updated Docs with additions to Trig.as - Fixed error in Trig.as - Removed unused parameter "one" from ColorSpace::rgb2hsl() 16.Feb.2012 - Completed Trig.as macro library 11.Feb.2012 - Added new macro class -- Trig -- to contain macros for missing trigonometric functions - Improved documentation, particularly in IRegister 4.Feb.2012 - Compiled library to a SWC - Added BlendHSL macros including: hue, saturation, luminosity and color blend functions - Added ColorSpace macros, featuring conversion between RGB & HSL, desaturate, colorize, etc. - Added new functions to RegisterType: isConst(), isTemp() , isReadOnly() - Corrected an error in Component.as, register type was not passed on to component 3.Dec.2011 - Updated AGALMiniAssembler.as to official branch with support for rgba accessors - Minor corrections in docs 11.Nov.2011 - Compiled ASDocs now included - Updates to all ASDoc tags. Lots of additions, some minor corrections. 25.Oct.2011 - Added new "formatAS3" option to getVertexOpcode() and getFragmentOpcode() - Using this option, you can trace the opcode generated by EasyAGAL formatted as AS3 code. - Comment out your EasyAGAL shader code and replace, for a slight optimization. - Uncomment the EasyAGAL code to continue work. - Obviously this is not applicable to dynamically customized shader code. 23.Oct.2011 - Modified AGALMiniAssembler.as to fix mishandling of RGBA component accessors - Removed workaround from EasyBase.as 16.Oct.2011 - Changed register variables to static, so that only one set is needed for the entire project - EasyBase.init() now does not get called if it's not needed. If all shaders in a project use setVertexOpcode() and setFragmentOpcode() in the constructor, none of EasyAGAL's registers need to be used, conserving memory. 15.Oct.2011 - Added RegisterType and support for obtaining types of registers from macros. - Added two more blend modes to macro library Blend.as: lighterColor & darkerColor - Replaced nextRegister.as which mysteriously disappeared! 4.Oct.2011 - Replaced Blend.softLight() with a formula that is a perfect match with Photoshop and is *far* more efficient - setFragmentOpcode() and setVertexOpcode() now allow appending. Instruction counting still not added. - Retested all blend modes. Minor updates to avoid possible "two constant parameters" error. - Removed unsupported facility to select components of a SAMPLER register - Fixed bugs in Blend.softLight() and Blend.hardLight() macros 3.Oct.2011 - Updated AGALMiniAssembler.as to current version!!! - Removed verboseDebug as it is no longer an option in AGALMiniAssembler 2.Oct.2011 - added CONST_byIndex - opcode and instruction count are available now before calling upload() - shader upload errors now trigger a dump of the shader code with line numbers - separated debug options in EasyBase constructor - added interface IComponent to differentiate single components - new macro Utils.selectByIndex()