Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-swt-dev] GTK graphics status

True, but JIT helps.  I've analyzed some of the SWT image code for image 
handling before, and have gotten at least 10x improvement when the methods 
get JITed. AOT is even better, since you can get the "bad" methods 
precompiled right away.

-Andrew





"Randy Hudson" <hudsonr@xxxxxxxxxx>
Sent by: platform-swt-dev-admin@xxxxxxxxxxx
03/19/2002 12:09 PM
Please respond to platform-swt-dev

 
        To:     platform-swt-dev@xxxxxxxxxxx
        cc: 
        Subject:        Re: [platform-swt-dev] GTK graphics status

Scaling an Image should be fast.  Developers shouldn't be subject to a
10-100x performance hit because they are using Java.
If you are looping over every pixel, would you consider doing this in
natives?  I know the SWT philisophy, but I don't think the average
developer will benefit from stepping through such code in a Java debugger.



|---------+---------------------------------->
|         |           Havoc Pennington       |
|         |           <hp@xxxxxxxxxx>        |
|         |           Sent by:               |
|         |           platform-swt-dev-admin@|
|         |           eclipse.org            |
|         |                                  |
|         |                                  |
|         |           03/19/2002 01:03 PM    |
|         |           Please respond to      |
|         |           platform-swt-dev       |
|         |                                  |
|---------+---------------------------------->
 
>-------------------------------------------------------------------------------------------------------------------------------------|
  |                                                              |
  |       To:       platform-swt-dev@xxxxxxxxxxx             |
  |       cc:  |
  |       Subject:  Re: [platform-swt-dev] GTK graphics status           |
  |                                                              |
  |                                                              |
 
>-------------------------------------------------------------------------------------------------------------------------------------|




Silenio_Quarti@xxxxxxx writes:
> When a image has transparency (e.g. icons, gifs with transparent pixel),
> SWT creates
> a GdkPixmap for the color part of the image and a GdkBitmap for the 
mask.
>

I guess the hard bit is "Image implements Drawable" - otherwise you
could just implement Image as a pixbuf instead of a pixmap.

> We are using GdkPixBuf to scale the GdkPixmap. If we use a different
> algorithm to scale the GdkBitmap, we might have problems, since 
different
> algorithms might replicate different pixels.

Good point.

> So if we use our own algorithm the scale a GdkBitmap, I believe we will
> have to
> use it the scale its associated GdkPixmap too.

As you probably know that's a world of pain, since you have around 20
common GdkImage pixel formats to deal with, each in two possible byte
orders...

> Right now, we are getting a GdkPixBuf with alha channel from the
> GdkPixmap,
> getting the mask data using GdkImage, combining them by replacing the
> alpha
> channel with appropriate values (e.g. 1 -> 255, 0 -> 0), scaling the
> GdkPixBuf and
> then redering to the destination drawable by calling
> gdk_pixbuf_render_to_drawable_alpha.
>
> This is somewhat inneficient though.

Yeah it's pretty ugly, but I can't think of anything much better.  It
will be slow but not _that_ bad, as long as you don't do it on every
expose event or something.

There's a gdk_pixbuf_render_pixmap_and_mask() convenience function
too, FWIW, which you can use to generate a new pixmap/mask after
scaling the pixbuf.

Havoc
_______________________________________________
platform-swt-dev mailing list
platform-swt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/platform-swt-dev



_______________________________________________
platform-swt-dev mailing list
platform-swt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/platform-swt-dev





Back to the top