> On Wed, Oct 6, 2010 at 8:22 AM, éæ <yi.codeplayer@xxxxxxxxx> wrote:
>> I'm trying to write a plugin to apply effects like
>> this(http://mrdoob.com/projects/harmony/) to any path.
>> I've done the coding, but it runs too slow, it speed several minutes
>> to draw 7000 lines on my laptop.
>> Currently i use following methods to draw lines:
>>
>> Â Âpdb.gimp_context_set_opacity(alpha)
>> Â Âpdb.gimp_paintbrush_default(drawable, 4, [x1,y1,x2,y2])
>>
>> I guess the overhead of pdb api is too heavy. Is there any alternate
>> way to achieve my purpose?
>> I can't find a proper one in pdb, maybe i should use cairo api to draw
>> a back buffer, then send it to gimp, but i have no idea how to do
>> that.
>>
>
> Several minutes for 7000 strokes to me seems pretty much on par or
> even above with paint core normal performance. You can try drawing on
> a drawable/image that isn't visible, if you aren't already, but other
> than that... Painting is rather expensive operation and is generally
> optimized to keep up with human speeds, that usually at best do 4 or 5
> strokes per second and I have to admit, with large brushes even there
> it sometimes isn't good enough.
>
Make the layer invisible don't make it better, using pycairo does.
With pycairo, drawing random lines with random alpha value on gtk surface, 100000 strokes only take 21 seconds.
--
http://www.yi-programmer.com/blog/
With pycairo, drawing random lines with random alpha value on gtk surface, 100000 strokes only take 21 seconds.
for i in range(100000):
ÂÂ cr = self.window.cairo_create()
ÂÂ cr.set_source_rgba(0,0,0,random.random())
ÂÂ cr.move_to(random.randint(0,200), random.randint(0,200))
ÂÂ cr.line_to(random.randint(0,200), random.randint(0,200))
 Âcr.stroke()
Now i use pycairo to draw to a memory buffer, then copy to gimp layer, that's fast enough, the code still needs to be adjusted though.
Thank you very much.
--
http://www.yi-programmer.com/blog/
_______________________________________________ Gimp-developer mailing list Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer