diff --git a/filtress_notes.txt b/filtress_notes.txt new file mode 100644 index 0000000..abbe1fd --- /dev/null +++ b/filtress_notes.txt @@ -0,0 +1,110 @@ +Farbdraw + +Takes the concept of interval.rs sound generation and moves it over to image generation. + +Users can update certain variables that continue on when not called directly, they can also have math oriented udpates as well as loops + +Possibility of functions (circle, square, etc) + +rgba averaging on draw where there is a previous layer + +different point sizes and a concept of soft or hard (hard being constant a channel soft being diminishing over time) + Lines can be drawn from a start point at an angle with a color soft or hard with an amount of pressure (that equates loosely to distance) + Points can be done mostly the same way + +Everything writes to rgba farbfeld. + +Possibility of user writable filter modules that can be activated via "use _______;" to do an opperation on teh whole canvas. + +- - - - - + +Things have shifted to maybe doing image mangling based on input file. To do so I could just use the standard go image library to deal with the images. + ++ + + + + + + + + + +Meta-langauge: +__________________ + +Comments: + +# This is a comment. It begins with a pound sign +# Multiline comments use multiple lines all starting with a pound sign + +. . . + +Operators: +# Operators get applied to numerical values and always lead the number +# = is implicit when writing just an int, but can be optionally included for clarity + ++, -, / (floors on decimal), *, %, = + +. . . + +Variables: +# The following global variables are available + +WID # The image width +HIG # The image height +REG # A register for saving numbers? + +. . . + +Setting the current pixel: +# Valuesthat over or underflow the image dimensions will be looped to aceptable locations + +LOC int:int +LOC [op]int:int +LOC int:[op]int +LOC [op]int:[op]int + +. . . + +Applying changes: +# Just calling APY alone applies the filter to the current selected pixel +# Calling with a ratio sets the width and height of a square in which to apply the filter + +APY +APY [op]int:[op]int + +. . . + +Colors get set either individually or as a group: +# Using COL as opposed to the individuals requires that all four values are set +# Passing an int with no op sets to that value +# Values udner or overflowing will loop to acceptable values + +RED [op]int +GRN [op]int +BLU [op]int +APH [op]int +COL [op]int:[op]int:[op]int:[op]int + +. . . + +Set the apply mode: +# Using an op with MOD will always loop through the modes as needed based on the operator +# +# Values: +# 0 - Hard mode, replaces pixel contents with the color settings on apply +# 1 - Average mode, averages the incoming channel with the existing channel +# 2 - Loop mode, adds the values of the existing and incoming channels and loops around on overflow +# 3 - Fade mode, works as average mode, but uses the fade timer to fade over the course of a number of pixel adjustments + +MOD [op]int + +. . . + +Set fade time: +# If set below zero, becomes zero + +FAD [op]int + +. . . + +Doing loops: + +BEG int + [loop contents] +END + +. . .