Next thanks to you
regarding the optimization i want to answer to all your idea just to share our knowledge
firs of all
The chose of the JPanel happen for one specific reason the method JPanel.createImage(pWidth, pHeight)
hire the official link to java doc
http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html#createImage(java.awt.image.ImageProducer)
this method must be called each time in the cycle, because it manage automatically for you the double buffering strategy
increasing the performance, so for this reason this object is used by double buffering i can not reuse the same object clearing the immage
never tried to do it by canvas, is there a specific method to do it automatically? the old AWT expose something to do it? if exsist let me know i want to try it
Ok, then you apply a set of affineTransforms, right?, so you create an intermediate BufferedImage called "filtered" with all the changes. Do you tried directly to draw the image to dbg without creating that "filtered" image?
this part of the code is already optimized, the solution applied is this:
every image transformed in the chain of effect is stored in a repository keeping with it information of the kind of transformation performed over it, so every time that on a image is required to execute same effect, first of all I look in the repository if that image with that kind of transformation already exists in this case this image is get and reused, other ways a new image with effect is created and saved in the repository.
this make in my case a huge increasing of the performance and aloud to me to work on image modification on the fly
but the back side of this solution is the memory used to store images in the repository
instead regarding this fact (davedes please don't take it personally, but i have to write this)
General consensus is: if you need reliable performance, Java2D is the wrong choice
the fact that exist technologies that are better of the Java2D is something that also the kids know,
so if i use this specific section of the forum called Java2D, and not OpenGL Development may be ther is a reason what u think?
http://www.java-gaming.org/boards/java-2d/15/view.htmlif i can get 1 euro for all the guys that write in this forum,
General consensus is: if you need reliable performance, Java2D is the wrong choice
i will become one of the most reach person in the word (ok i will open a topic for this

)
regarding the real discussion of this topic,
Setting flags like that always screams to me
me too!!!
i want to try to set the variable J2D_D3D_NO_HWCHECK=true and try to activate the direct3D. i will let to know how it works