module Graphic2Pixmap(graphic2PixmapImage,graphic2FixedColorDrawing, PixmapImage(..)) where import DrawCompiledGraphics(drawCG) import MeasuredGraphics(compileMG) import Graphic import PixmapGen import Pixmap(createPixmap) import LayoutRequest(minsize) import XDraw(pmDrawMany) import ResourceIds(copyFromParent) import FixedDrawing import FudgetIO import NullF() -- instance FudgetIO K graphic2PixmapImage g gctx cont = measureGraphicK g gctx $ \ mg -> convToPixmapK mg cont graphic2FixedColorDrawing g gctx cont = measureGraphicK g gctx (cont . measuredGraphics2FixCD) measuredGraphics2FixCD mg = let (cg,req) = compileMG id mg size = minsize req in FixCD size (drawCG (undefined,const []) (const []) cg) instance PixmapGen MeasuredGraphics where convToPixmapK = convToPixmapK . measuredGraphics2FixCD instance PixmapGen FixedColorDrawing where convToPixmapK (FixCD size gcdcmds) cont = createPixmap size copyFromParent $ \ pm -> putLow (pmDrawMany pm gcdcmds) $ cont (PixmapImage size pm) --pmDrawFixedColorDrawing pm (FixCD _ gcdcmds) = pmDrawMany pm gcdcmds