2 bumpmap.py - S.Fourmanoit <syfou@users.sourceforge.net>, 2005
4 Short, but more involved adesklets test script. It demonstrates
5 Imlib2 dynamic filtering capabilities and how you can modify
6 a background image dynamically.
8 Note: I strongly advise against using an effect that CPU intensive
9 in real life desklets - remember adesklets was made to be 'light'.
12 - Install adesklets with python support enabled (default)
13 - Run python bumpmap.py from this directory.
17 class My_Events(adesklets
.Events_handler
):
18 x
= 100 # Initial spot position
22 adesklets
.Events_handler
.__init
__(self
)
25 adesklets
.Events_handler
.__del
__(self
)
28 adesklets
.window_resize(200,200)
29 adesklets
.window_set_background_image(adesklets
.clone_image())
30 adesklets
.window_set_transparency(True)
31 adesklets
.window_reset(adesklets
.WINDOW_MANAGED
)
33 # Now, let us set a 'Test!' text on foreground image:
34 # we will not modify it any more
36 adesklets
.context_set_image(0)
37 adesklets
.context_set_font(adesklets
.load_font('Vera/60'))
38 adesklets
.context_set_color(255,0,0,200)
39 adesklets
.context_set_direction(adesklets
.TEXT_TO_ANGLE
)
40 adesklets
.context_set_angle(45)
41 adesklets
.text_draw(20,0,'Test!')
42 adesklets
.free_font(0)
44 adesklets
.window_show()
46 def background_grab(self
,delayed
):
49 def motion_notify(self
, delayed
, x
, y
):
57 The drawing method. Please remember this nomenclature:
59 image 0: foreground image, left untouched here
60 image 1: original background, automatically kept up to date
61 by adesklets - hence we keep ourselves from modify it.
62 image 2: Our displayed background - set My_Events::ready() for
63 initialisation details
64 image 3: transient image on which we operate the
65 current transformation, before updating image 2
68 adesklets
.context_set_image(1)
69 adesklets
.context_set_image(adesklets
.clone_image())
70 adesklets
.apply_filter("bump_map_point(x=%d,y=%d);" % (self
.x
, self
.y
))
71 adesklets
.context_set_image(2)
72 adesklets
.blend_image_onto_image(3,0,0,0,200,200,0,0,200,200)
73 adesklets
.free_image(3)