• Adrian Page's avatar
    Add support for displaying images using OpenGL, taking advantage of hardware... · 4571e3f4
    Adrian Page authored
    Add support for displaying images using OpenGL, taking advantage of hardware acceleration if available. This also opens up the world of shaders, for GPU accelerated rendering algorithms and general purpose computation, the first of which should be real-time adjustment of exposure for high dynamic range images.
    
    OpenGL can be enabled/disabled in the settings dialog and it defaults to off for now.
    
    - KisCanvas is no longer a widget, but contains either a QWidget or a QGLWidget. Because of this, a KisCanvasPainter is used to draw on the canvas widget. KisCanvasPainter offers the same API as QPainter, although the OpenGL painter only implements the methods currently used by the tools. This can be filled out as needed. In Qt4, KisCanvasPainter can become a QPainter again as it has gained the ability to paint on OpenGL widgets.
    - The image background is no longer compositied into the projection. KisImage::renderToPainter() now takes flags to say whether the background and/or selection should be rendered. This means we now honour the 'transparent' flag in KisDoc::paintContent() for embedded images.
    - KisBackground is no longer a KisPaintDevice, but instead contains a QImage with the background pattern.
    - The bottom-most layer is now copied into the projection, ignoring the layer's composite op. This is consistent with the gimp and Photoshop.
    - Make COMPOSITE_COPY copy transparent pixels and also apply the opacity to the copied data.
    - Add multiplyAlpha() and hasHighDynamicRange() methods to the colourspaces.
    - Move compositeCopy() from all colorspaces into one in KisAbstractColorSpace.
    - Move the painting methods out of KisBoundary (core) into KisBoundaryPainter (ui).
    - Make the overview zoom slider zoom the image.
    
    
    svn path=/trunk/koffice/; revision=475547
    4571e3f4