X-Git-Url: http://git.imager.perl.org/imager.git/blobdiff_plain/843241925b70564f318d34874e9c2aab82e22dc1..5c0d0ddf3129b2fa6c3d282b02c83ee00b9bbd46:/lib/Imager/Regops.pm diff --git a/lib/Imager/Regops.pm b/lib/Imager/Regops.pm index e4d27707..e2ed07e6 100644 --- a/lib/Imager/Regops.pm +++ b/lib/Imager/Regops.pm @@ -52,341 +52,443 @@ use constant RBC_JUMPNZ => 42; use constant RBC_SET => 43; use constant RBC_SETP => 44; use constant RBC_PRINT => 45; -use constant RBC_OP_COUNT => 46; +use constant RBC_RGBA => 46; +use constant RBC_HSVA => 47; +use constant RBC_ALPHA => 48; +use constant RBC_LOG => 49; +use constant RBC_EXP => 50; +use constant RBC_DET => 51; +use constant RBC_OP_COUNT => 52; -@EXPORT = qw(RBC_ADD RBC_SUBTRACT RBC_MULT RBC_DIV RBC_MOD RBC_POW RBC_UMINUS RBC_MULTP RBC_ADDP RBC_SUBTRACTP RBC_SIN RBC_COS RBC_ATAN2 RBC_SQRT RBC_DISTANCE RBC_GETP1 RBC_GETP2 RBC_GETP3 RBC_VALUE RBC_HUE RBC_SAT RBC_HSV RBC_RED RBC_GREEN RBC_BLUE RBC_RGB RBC_INT RBC_IF RBC_IFP RBC_LE RBC_LT RBC_GE RBC_GT RBC_EQ RBC_NE RBC_AND RBC_OR RBC_NOT RBC_ABS RBC_RET RBC_JUMP RBC_JUMPZ RBC_JUMPNZ RBC_SET RBC_SETP RBC_PRINT RBC_OP_COUNT); +@EXPORT = qw(RBC_ADD RBC_SUBTRACT RBC_MULT RBC_DIV RBC_MOD RBC_POW RBC_UMINUS RBC_MULTP RBC_ADDP RBC_SUBTRACTP RBC_SIN RBC_COS RBC_ATAN2 RBC_SQRT RBC_DISTANCE RBC_GETP1 RBC_GETP2 RBC_GETP3 RBC_VALUE RBC_HUE RBC_SAT RBC_HSV RBC_RED RBC_GREEN RBC_BLUE RBC_RGB RBC_INT RBC_IF RBC_IFP RBC_LE RBC_LT RBC_GE RBC_GT RBC_EQ RBC_NE RBC_AND RBC_OR RBC_NOT RBC_ABS RBC_RET RBC_JUMP RBC_JUMPZ RBC_JUMPNZ RBC_SET RBC_SETP RBC_PRINT RBC_RGBA RBC_HSVA RBC_ALPHA RBC_LOG RBC_EXP RBC_DET RBC_OP_COUNT); -%Attr = ( - 'setp' => { - 'result' => 'p', - 'parms' => 1, - 'opcode' => 44, - 'func' => 0, - 'types' => 'p' - }, - 'green' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 23, - 'func' => 1, - 'types' => 'p' - }, - 'abs' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 38, - 'func' => 1, - 'types' => 'r' - }, - 'le' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 29, - 'func' => 0, - 'types' => 'rr' - }, - 'cos' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 11, - 'func' => 1, - 'types' => 'r' - }, - 'not' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 37, - 'func' => 0, - 'types' => 'r' - }, - 'ne' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 34, - 'func' => 0, - 'types' => 'rr' - }, - 'blue' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 24, - 'func' => 1, - 'types' => 'p' - }, - 'and' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 35, - 'func' => 0, - 'types' => 'rr' - }, - 'mult' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 2, - 'func' => 0, - 'types' => 'rr' - }, - 'pow' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 5, - 'func' => 0, - 'types' => 'rr' - }, - 'lt' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 30, - 'func' => 0, - 'types' => 'rr' - }, - 'mod' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 4, - 'func' => 0, - 'types' => 'rr' - }, - 'getp1' => { - 'result' => 'p', - 'parms' => 2, - 'opcode' => 15, - 'func' => 1, - 'types' => 'rr' - }, - 'atan2' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 12, - 'func' => 1, - 'types' => 'rr' - }, - 'getp2' => { - 'result' => 'p', - 'parms' => 2, - 'opcode' => 16, - 'func' => 1, - 'types' => 'rr' - }, - 'getp3' => { - 'result' => 'p', - 'parms' => 2, - 'opcode' => 17, - 'func' => 1, - 'types' => 'rr' - }, - 'value' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 18, - 'func' => 1, - 'types' => 'p' - }, - 'subtractp' => { - 'result' => 'p', - 'parms' => 2, - 'opcode' => 9, - 'func' => 0, - 'types' => 'pp' - }, - 'ge' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 31, - 'func' => 0, - 'types' => 'rr' - }, - 'sat' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 20, - 'func' => 1, - 'types' => 'p' - }, - 'jump' => { - 'result' => undef, - 'parms' => 0, - 'opcode' => 40, - 'func' => 0, - 'types' => '' - }, - 'if' => { - 'result' => 'r', - 'parms' => 3, - 'opcode' => 27, - 'func' => 1, - 'types' => 'rrr' - }, - 'div' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 3, - 'func' => 0, - 'types' => 'rr' - }, - 'ifp' => { - 'result' => 'p', - 'parms' => 3, - 'opcode' => 28, - 'func' => 1, - 'types' => 'rpp' - }, - 'set' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 43, - 'func' => 0, - 'types' => 'r' - }, - 'eq' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 33, - 'func' => 0, - 'types' => 'rr' - }, - 'multp' => { - 'result' => 'p', - 'parms' => 2, - 'opcode' => 7, - 'func' => 0, - 'types' => 'pr' - }, - 'sin' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 10, - 'func' => 1, - 'types' => 'r' - }, - 'sqrt' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 13, - 'func' => 1, - 'types' => 'r' - }, - 'distance' => { - 'result' => 'r', - 'parms' => 4, - 'opcode' => 14, - 'func' => 1, - 'types' => 'rrrr' - }, - 'gt' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 32, - 'func' => 0, - 'types' => 'rr' - }, - 'red' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 22, - 'func' => 1, - 'types' => 'p' - }, - 'rgb' => { - 'result' => 'p', - 'parms' => 3, - 'opcode' => 25, - 'func' => 1, - 'types' => 'rrr' - }, - 'hue' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 19, - 'func' => 1, - 'types' => 'p' - }, - 'print' => { - 'result' => undef, - 'parms' => 1, - 'opcode' => 45, - 'func' => 0, - 'types' => 'r' - }, - 'jumpnz' => { - 'result' => undef, - 'parms' => 1, - 'opcode' => 42, - 'func' => 0, - 'types' => 'r' - }, - 'addp' => { - 'result' => 'p', - 'parms' => 2, - 'opcode' => 8, - 'func' => 0, - 'types' => 'pp' - }, - 'int' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 26, - 'func' => 1, - 'types' => 'r' - }, - 'op_count' => { - 'result' => undef, - 'parms' => 0, - 'opcode' => 46, - 'func' => 0, - 'types' => '' - }, - 'or' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 36, - 'func' => 0, - 'types' => 'rr' - }, - 'jumpz' => { - 'result' => undef, - 'parms' => 1, - 'opcode' => 41, - 'func' => 0, - 'types' => 'r' - }, - 'add' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 0, - 'func' => 0, - 'types' => 'rr' - }, - 'subtract' => { - 'result' => 'r', - 'parms' => 2, - 'opcode' => 1, - 'func' => 0, - 'types' => 'rr' - }, - 'ret' => { - 'result' => undef, - 'parms' => 1, - 'opcode' => 39, - 'func' => 0, - 'types' => 'p' - }, - 'hsv' => { - 'result' => 'p', - 'parms' => 3, - 'opcode' => 21, - 'func' => 1, - 'types' => 'rrr' - }, - 'uminus' => { - 'result' => 'r', - 'parms' => 1, - 'opcode' => 6, - 'func' => 0, - 'types' => 'r' - } - ); +%Attr = + ( + 'abs' => + { + 'func' => 1, + 'opcode' => 38, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'add' => + { + 'func' => 0, + 'opcode' => 0, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'addp' => + { + 'func' => 0, + 'opcode' => 8, + 'parms' => 2, + 'result' => 'p', + 'types' => 'pp', + }, + 'alpha' => + { + 'func' => 1, + 'opcode' => 48, + 'parms' => 1, + 'result' => 'r', + 'types' => 'p', + }, + 'and' => + { + 'func' => 0, + 'opcode' => 35, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'atan2' => + { + 'func' => 1, + 'opcode' => 12, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'blue' => + { + 'func' => 1, + 'opcode' => 24, + 'parms' => 1, + 'result' => 'r', + 'types' => 'p', + }, + 'cos' => + { + 'func' => 1, + 'opcode' => 11, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'det' => + { + 'func' => 1, + 'opcode' => 51, + 'parms' => 4, + 'result' => 'r', + 'types' => 'rrrr', + }, + 'distance' => + { + 'func' => 1, + 'opcode' => 14, + 'parms' => 4, + 'result' => 'r', + 'types' => 'rrrr', + }, + 'div' => + { + 'func' => 0, + 'opcode' => 3, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'eq' => + { + 'func' => 0, + 'opcode' => 33, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'exp' => + { + 'func' => 1, + 'opcode' => 50, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'ge' => + { + 'func' => 0, + 'opcode' => 31, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'getp1' => + { + 'func' => 1, + 'opcode' => 15, + 'parms' => 2, + 'result' => 'p', + 'types' => 'rr', + }, + 'getp2' => + { + 'func' => 1, + 'opcode' => 16, + 'parms' => 2, + 'result' => 'p', + 'types' => 'rr', + }, + 'getp3' => + { + 'func' => 1, + 'opcode' => 17, + 'parms' => 2, + 'result' => 'p', + 'types' => 'rr', + }, + 'green' => + { + 'func' => 1, + 'opcode' => 23, + 'parms' => 1, + 'result' => 'r', + 'types' => 'p', + }, + 'gt' => + { + 'func' => 0, + 'opcode' => 32, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'hsv' => + { + 'func' => 1, + 'opcode' => 21, + 'parms' => 3, + 'result' => 'p', + 'types' => 'rrr', + }, + 'hsva' => + { + 'func' => 1, + 'opcode' => 47, + 'parms' => 4, + 'result' => 'p', + 'types' => 'rrrr', + }, + 'hue' => + { + 'func' => 1, + 'opcode' => 19, + 'parms' => 1, + 'result' => 'r', + 'types' => 'p', + }, + 'if' => + { + 'func' => 1, + 'opcode' => 27, + 'parms' => 3, + 'result' => 'r', + 'types' => 'rrr', + }, + 'ifp' => + { + 'func' => 1, + 'opcode' => 28, + 'parms' => 3, + 'result' => 'p', + 'types' => 'rpp', + }, + 'int' => + { + 'func' => 1, + 'opcode' => 26, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'jump' => + { + 'func' => 0, + 'opcode' => 40, + 'parms' => 0, + 'result' => undef, + 'types' => '', + }, + 'jumpnz' => + { + 'func' => 0, + 'opcode' => 42, + 'parms' => 1, + 'result' => undef, + 'types' => 'r', + }, + 'jumpz' => + { + 'func' => 0, + 'opcode' => 41, + 'parms' => 1, + 'result' => undef, + 'types' => 'r', + }, + 'le' => + { + 'func' => 0, + 'opcode' => 29, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'log' => + { + 'func' => 1, + 'opcode' => 49, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'lt' => + { + 'func' => 0, + 'opcode' => 30, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'mod' => + { + 'func' => 0, + 'opcode' => 4, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'mult' => + { + 'func' => 0, + 'opcode' => 2, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'multp' => + { + 'func' => 0, + 'opcode' => 7, + 'parms' => 2, + 'result' => 'p', + 'types' => 'pr', + }, + 'ne' => + { + 'func' => 0, + 'opcode' => 34, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'not' => + { + 'func' => 0, + 'opcode' => 37, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'op_count' => + { + 'func' => 0, + 'opcode' => 52, + 'parms' => 0, + 'result' => undef, + 'types' => '', + }, + 'or' => + { + 'func' => 0, + 'opcode' => 36, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'pow' => + { + 'func' => 0, + 'opcode' => 5, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'print' => + { + 'func' => 1, + 'opcode' => 45, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'red' => + { + 'func' => 1, + 'opcode' => 22, + 'parms' => 1, + 'result' => 'r', + 'types' => 'p', + }, + 'ret' => + { + 'func' => 0, + 'opcode' => 39, + 'parms' => 1, + 'result' => undef, + 'types' => 'p', + }, + 'rgb' => + { + 'func' => 1, + 'opcode' => 25, + 'parms' => 3, + 'result' => 'p', + 'types' => 'rrr', + }, + 'rgba' => + { + 'func' => 1, + 'opcode' => 46, + 'parms' => 4, + 'result' => 'p', + 'types' => 'rrrr', + }, + 'sat' => + { + 'func' => 1, + 'opcode' => 20, + 'parms' => 1, + 'result' => 'r', + 'types' => 'p', + }, + 'set' => + { + 'func' => 0, + 'opcode' => 43, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'setp' => + { + 'func' => 0, + 'opcode' => 44, + 'parms' => 1, + 'result' => 'p', + 'types' => 'p', + }, + 'sin' => + { + 'func' => 1, + 'opcode' => 10, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'sqrt' => + { + 'func' => 1, + 'opcode' => 13, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'subtract' => + { + 'func' => 0, + 'opcode' => 1, + 'parms' => 2, + 'result' => 'r', + 'types' => 'rr', + }, + 'subtractp' => + { + 'func' => 0, + 'opcode' => 9, + 'parms' => 2, + 'result' => 'p', + 'types' => 'pp', + }, + 'uminus' => + { + 'func' => 0, + 'opcode' => 6, + 'parms' => 1, + 'result' => 'r', + 'types' => 'r', + }, + 'value' => + { + 'func' => 1, + 'opcode' => 18, + 'parms' => 1, + 'result' => 'r', + 'types' => 'p', + }, + ); $MaxOperands = 4; $PackCode = "i"; 1; @@ -420,7 +522,7 @@ Tony Cook, tony@develop-help.com =head1 SEE ALSO -perl(1), Imager(3), http://www.eecs.umich.edu/~addi/perl/Imager/ +perl(1), Imager(3), http://imager.perl.org/ =cut