ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/perl/background
(Generate patch)

Comparing rxvt-unicode/src/perl/background (file contents):
Revision 1.6 by root, Tue Jun 5 13:56:42 2012 UTC vs.
Revision 1.7 by root, Tue Jun 5 14:04:58 2012 UTC

1#! perl 1#! perl
2 2
3our $EXPR = 'move load "/root/pix/das_fette_schwein.jpg", repeat_wrap, X, Y'; 3our $EXPR = 'move load "/root/pix/das_fette_schwein.jpg", repeat_wrap, X, Y';
4$EXPR = 'rotate (move (load "/root/pix/das_fette_schwein.jpg", X, Y), W, H, 50, 50, counter 1/60, repeat_mirror)'; 4$EXPR = '
5 rotate W, H, 50, 50, counter 1/60, repeat_mirror,
6 clip X, Y, W, H, repeat_mirror,
7 load "/root/pix/das_fette_schwein.jpg"
8';
5#$EXPR = 'blur root, 10, 10' 9#$EXPR = 'blur root, 10, 10'
6#$EXPR = 'blur move (root, -x, -y), 5, 5' 10#$EXPR = 'blur move (root, -x, -y), 5, 5'
7#resize load "/root/pix/das_fette_schwein.jpg", w, h 11#resize load "/root/pix/das_fette_schwein.jpg", w, h
8 12
9use Safe; 13use Safe;
31 35
32# sub clone($) { 36# sub clone($) {
33# $_[0]->clone 37# $_[0]->clone
34# } 38# }
35 39
36 sub subrect($$$$$;$) { 40 sub clip($$$$$;$) {
41 my $img = pop;
37 $_[0]->sub_rect ($_[1], $_[2], $_[3], $_[4], $_[5]) 42 $img->sub_rect ($_[0], $_[1], $_[2], $_[3], $_[4])
38 } 43 }
39 44
40 sub resize($$$) { 45 sub resize($$$) {
41 $_[0]->scale ($_[1], $_[2]) 46 my $img = pop;
47 $img->scale ($_[0], $_[1])
42 } 48 }
43 49
50 # TODO: ugly
44 sub move($$$;$) { 51 sub move($$;$) {
45 # TODO: must be simpler 52 my $img = pop;
46 $_[0]->transform ($_[0]->w, $_[0]->h, 53 $img->sub_rect (
47 1, 0, $_[1], 54 $_[0], $_[1],
48 0, 1, $_[2], 55 $img->w, $img->h,
49 0, 0, 1,
50 $_[3], 56 $_[2],
51 ) 57 )
52 } 58 }
53 59
54 sub rotate($$$$$$;$) { 60 sub rotate($$$$$$;$) {
61 my $img = pop;
55 $_[0]->rotate ( 62 $img->rotate (
63 $_[0],
56 $_[1], 64 $_[1],
57 $_[2],
58 $_[3] * $_[0]->w * .01, 65 $_[2] * $img->w * .01,
59 $_[4] * $_[0]->h * .01, 66 $_[3] * $img->h * .01,
60 $_[5] * (3.14159265 / 180), 67 $_[4] * (3.14159265 / 180),
61 $_[6], 68 $_[5],
62 ) 69 )
63 } 70 }
64 71
65 sub blur($$$) { 72 sub blur($$$) {
66 my ($img, $rh, $rv) = @_; 73 my ($rh, $rv, $img) = @_;
67 74
68 $img = $img->clone; 75 $img = $img->clone;
69 $img->blur ($rh, $rv); 76 $img->blur ($rh, $rv);
70 $img 77 $img
71 } 78 }
72 79
73 sub contrast($$;$$;$) { 80 sub contrast($$;$$;$) {
81 my $img = pop;
74 my ($img, $r, $g, $b, $a) = @_; 82 my ($r, $g, $b, $a) = @_;
75 83
76 ($g, $b) = ($r, $r) if @_ < 4; 84 ($g, $b) = ($r, $r) if @_ < 4;
77 $a = 1 if @_ < 5; 85 $a = 1 if @_ < 5;
78 86
79 $img = $img->clone; 87 $img = $img->clone;
80 $img->contrast ($r, $g, $b, $a); 88 $img->contrast ($r, $g, $b, $a);
81 $img 89 $img
82 } 90 }
83 91
84 sub brightness($$;$$;$) { 92 sub brightness($$;$$;$) {
93 my $img = pop;
85 my ($img, $r, $g, $b, $a) = @_; 94 my ($r, $g, $b, $a) = @_;
86 95
87 ($g, $b) = ($r, $r) if @_ < 4; 96 ($g, $b) = ($r, $r) if @_ < 4;
88 $a = 1 if @_ < 5; 97 $a = 1 if @_ < 5;
89 98
90 $img = $img->clone; 99 $img = $img->clone;
103 $new->{again} = $_[0]; 112 $new->{again} = $_[0];
104 } 113 }
105 114
106 sub counter($) { 115 sub counter($) {
107 $new->{again} = $_[0]; 116 $new->{again} = $_[0];
108 $bgdsl_self->{counter}++ + 0 117 $bgdsl_self->{counter} + 0
109 } 118 }
110} 119}
111 120
112sub parse_expr { 121sub parse_expr {
113 my $expr = eval "sub {\npackage urxvt::bgdsl;\n#line 0 'background expression'\n$_[0]\n}"; 122 my $expr = eval "sub {\npackage urxvt::bgdsl;\n#line 0 'background expression'\n$_[0]\n}";
144 153
145 if (my $again = $state->{again}) { 154 if (my $again = $state->{again}) {
146 $repeat = 1; 155 $repeat = 1;
147 $state->{timer} = $again == $old->{again} 156 $state->{timer} = $again == $old->{again}
148 ? $old->{timer} 157 ? $old->{timer}
149 : urxvt::timer->new->after ($again)->interval ($again)->cb (sub { $self->recalculate }); 158 : urxvt::timer->new->after ($again)->interval ($again)->cb (sub {
159 ++$self->{counter};
160 $self->recalculate
161 });
150 } 162 }
151 163
152 if (delete $state->{position_sensitive}) { 164 if (delete $state->{position_sensitive}) {
153 $repeat = 1; 165 $repeat = 1;
154 $self->enable (position_change => sub { $_[0]->recalculate }); 166 $self->enable (position_change => sub { $_[0]->recalculate });

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines