sun.java2d.loops.SurfaceType Java Examples

The following examples show how to use sun.java2d.loops.SurfaceType. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: BufImgSurfaceData.java    From jdk8u-dev-jdk with GNU General Public License v2.0 6 votes vote down vote up
public static SurfaceData createDataBP(BufferedImage bImg,
                                       SurfaceType sType) {
    BytePackedRaster bpRaster =
        (BytePackedRaster)bImg.getRaster();
    BufImgSurfaceData bisd =
        new BufImgSurfaceData(bpRaster.getDataBuffer(), bImg, sType);
    ColorModel cm = bImg.getColorModel();
    IndexColorModel icm = ((cm instanceof IndexColorModel)
                           ? (IndexColorModel) cm
                           : null);
    bisd.initRaster(bpRaster.getDataStorage(),
                    bpRaster.getDataBitOffset() / 8,
                    bpRaster.getDataBitOffset() & 7,
                    bpRaster.getWidth(),
                    bpRaster.getHeight(),
                    0,
                    bpRaster.getScanlineStride(),
                    icm);
    return bisd;
}
 
Example #2
Source File: BufImgSurfaceData.java    From jdk8u_jdk with GNU General Public License v2.0 6 votes vote down vote up
public static SurfaceData createDataIC(BufferedImage bImg,
                                       SurfaceType sType,
                                       double scaleX,
                                       double scaleY)
{
    IntegerComponentRaster icRaster =
        (IntegerComponentRaster)bImg.getRaster();
    BufImgSurfaceData bisd =
        new BufImgSurfaceData(icRaster.getDataBuffer(), bImg, sType,
                              scaleX, scaleY);
    bisd.initRaster(icRaster.getDataStorage(),
                    icRaster.getDataOffset(0) * 4, 0,
                    icRaster.getWidth(),
                    icRaster.getHeight(),
                    icRaster.getPixelStride() * 4,
                    icRaster.getScanlineStride() * 4,
                    null);
    return bisd;
}
 
Example #3
Source File: BufImgSurfaceData.java    From openjdk-8-source with GNU General Public License v2.0 6 votes vote down vote up
public static SurfaceData createDataSC(BufferedImage bImg,
                                       SurfaceType sType,
                                       IndexColorModel icm) {
    ShortComponentRaster scRaster =
        (ShortComponentRaster)bImg.getRaster();
    BufImgSurfaceData bisd =
        new BufImgSurfaceData(scRaster.getDataBuffer(), bImg, sType);
    bisd.initRaster(scRaster.getDataStorage(),
                    scRaster.getDataOffset(0) * 2, 0,
                    scRaster.getWidth(),
                    scRaster.getHeight(),
                    scRaster.getPixelStride() * 2,
                    scRaster.getScanlineStride() * 2,
                    icm);
    return bisd;
}
 
Example #4
Source File: BufferedMaskBlit.java    From Bytecoder with Apache License 2.0 6 votes vote down vote up
protected BufferedMaskBlit(RenderQueue rq,
                           SurfaceType srcType,
                           CompositeType compType,
                           SurfaceType dstType)
{
    super(srcType, compType, dstType);
    this.rq = rq;
    if (srcType == SurfaceType.IntArgb) {
        this.srcTypeVal = ST_INT_ARGB;
    } else if (srcType == SurfaceType.IntArgbPre) {
        this.srcTypeVal = ST_INT_ARGB_PRE;
    } else if (srcType == SurfaceType.IntRgb) {
        this.srcTypeVal = ST_INT_RGB;
    } else if (srcType == SurfaceType.IntBgr) {
        this.srcTypeVal = ST_INT_BGR;
    } else {
        throw new InternalError("unrecognized source surface type");
    }
}
 
Example #5
Source File: BufImgSurfaceData.java    From jdk8u-jdk with GNU General Public License v2.0 6 votes vote down vote up
public static SurfaceData createDataBC(BufferedImage bImg,
                                       SurfaceType sType,
                                       int primaryBank) {
    ByteComponentRaster bcRaster =
        (ByteComponentRaster)bImg.getRaster();
    BufImgSurfaceData bisd =
        new BufImgSurfaceData(bcRaster.getDataBuffer(), bImg, sType);
    ColorModel cm = bImg.getColorModel();
    IndexColorModel icm = ((cm instanceof IndexColorModel)
                           ? (IndexColorModel) cm
                           : null);
    bisd.initRaster(bcRaster.getDataStorage(),
                    bcRaster.getDataOffset(primaryBank), 0,
                    bcRaster.getWidth(),
                    bcRaster.getHeight(),
                    bcRaster.getPixelStride(),
                    bcRaster.getScanlineStride(),
                    icm);
    return bisd;
}
 
Example #6
Source File: DrawImage.java    From jdk8u_jdk with GNU General Public License v2.0 6 votes vote down vote up
protected boolean scaleSurfaceData(SunGraphics2D sg,
                                   Region clipRegion,
                                   SurfaceData srcData,
                                   SurfaceData dstData,
                                   SurfaceType srcType,
                                   SurfaceType dstType,
                                   int sx1, int sy1,
                                   int sx2, int sy2,
                                   double dx1, double dy1,
                                   double dx2, double dy2)
{
    CompositeType comp = sg.imageComp;
    if (CompositeType.SrcOverNoEa.equals(comp) &&
        (srcData.getTransparency() == Transparency.OPAQUE))
    {
        comp = CompositeType.SrcNoEa;
    }

    ScaledBlit blit = ScaledBlit.getFromCache(srcType, comp, dstType);
    if (blit != null) {
        blit.Scale(srcData, dstData, sg.composite, clipRegion,
                   sx1, sy1, sx2, sy2, dx1, dy1, dx2, dy2);
        return true;
    }
    return false;
}
 
Example #7
Source File: D3DBlitLoops.java    From jdk8u60 with GNU General Public License v2.0 6 votes vote down vote up
@Override
public synchronized void Transform(SurfaceData src, SurfaceData dst,
                                   Composite comp, Region clip,
                                   AffineTransform at, int hint, int srcx,
                                   int srcy, int dstx, int dsty, int width,
                                   int height){
    Blit convertsrc = Blit.getFromCache(src.getSurfaceType(),
                                        CompositeType.SrcNoEa,
                                        SurfaceType.IntArgbPre);
    // use cached intermediate surface, if available
    final SurfaceData cachedSrc = srcTmp != null ? srcTmp.get() : null;
    // convert source to IntArgbPre
    src = convertFrom(convertsrc, src, srcx, srcy, width, height, cachedSrc,
                      BufferedImage.TYPE_INT_ARGB_PRE);

    // transform IntArgbPre intermediate surface to D3D surface
    performop.Transform(src, dst, comp, clip, at, hint, 0, 0, dstx, dsty,
                        width, height);

    if (src != cachedSrc) {
        // cache the intermediate surface
        srcTmp = new WeakReference<>(src);
    }
}
 
Example #8
Source File: SurfaceData.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
public boolean canRenderLCDText(SunGraphics2D sg2d) {
    // For now the answer can only be true in the following cases:
    if (sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY &&
        sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
        sg2d.clipState <= SunGraphics2D.CLIP_RECTANGULAR &&
        sg2d.surfaceData.getTransparency() == Transparency.OPAQUE)
    {
        if (haveLCDLoop == LOOP_UNKNOWN) {
            DrawGlyphListLCD loop =
                DrawGlyphListLCD.locate(SurfaceType.AnyColor,
                                        CompositeType.SrcNoEa,
                                        getSurfaceType());
            haveLCDLoop = (loop != null) ? LOOP_FOUND : LOOP_NOTFOUND;
        }
        return haveLCDLoop == LOOP_FOUND;
    }
    return false; /* for now - in the future we may want to search */
}
 
Example #9
Source File: OGLBlitLoops.java    From hottub with GNU General Public License v2.0 6 votes vote down vote up
@Override
public synchronized void Transform(SurfaceData src, SurfaceData dst,
                                   Composite comp, Region clip,
                                   AffineTransform at, int hint, int srcx,
                                   int srcy, int dstx, int dsty, int width,
                                   int height){
    Blit convertsrc = Blit.getFromCache(src.getSurfaceType(),
                                        CompositeType.SrcNoEa,
                                        SurfaceType.IntArgbPre);
    // use cached intermediate surface, if available
    final SurfaceData cachedSrc = srcTmp != null ? srcTmp.get() : null;
    // convert source to IntArgbPre
    src = convertFrom(convertsrc, src, srcx, srcy, width, height, cachedSrc,
                      BufferedImage.TYPE_INT_ARGB_PRE);

    // transform IntArgbPre intermediate surface to OpenGL surface
    performop.Transform(src, dst, comp, clip, at, hint, 0, 0, dstx, dsty,
                        width, height);

    if (src != cachedSrc) {
        // cache the intermediate surface
        srcTmp = new WeakReference<>(src);
    }
}
 
Example #10
Source File: DrawImage.java    From openjdk-8-source with GNU General Public License v2.0 6 votes vote down vote up
protected boolean scaleSurfaceData(SunGraphics2D sg,
                                   Region clipRegion,
                                   SurfaceData srcData,
                                   SurfaceData dstData,
                                   SurfaceType srcType,
                                   SurfaceType dstType,
                                   int sx1, int sy1,
                                   int sx2, int sy2,
                                   double dx1, double dy1,
                                   double dx2, double dy2)
{
    CompositeType comp = sg.imageComp;
    if (CompositeType.SrcOverNoEa.equals(comp) &&
        (srcData.getTransparency() == Transparency.OPAQUE))
    {
        comp = CompositeType.SrcNoEa;
    }

    ScaledBlit blit = ScaledBlit.getFromCache(srcType, comp, dstType);
    if (blit != null) {
        blit.Scale(srcData, dstData, sg.composite, clipRegion,
                   sx1, sy1, sx2, sy2, dx1, dy1, dx2, dy2);
        return true;
    }
    return false;
}
 
Example #11
Source File: BufferedMaskBlit.java    From openjdk-jdk9 with GNU General Public License v2.0 6 votes vote down vote up
protected BufferedMaskBlit(RenderQueue rq,
                           SurfaceType srcType,
                           CompositeType compType,
                           SurfaceType dstType)
{
    super(srcType, compType, dstType);
    this.rq = rq;
    if (srcType == SurfaceType.IntArgb) {
        this.srcTypeVal = ST_INT_ARGB;
    } else if (srcType == SurfaceType.IntArgbPre) {
        this.srcTypeVal = ST_INT_ARGB_PRE;
    } else if (srcType == SurfaceType.IntRgb) {
        this.srcTypeVal = ST_INT_RGB;
    } else if (srcType == SurfaceType.IntBgr) {
        this.srcTypeVal = ST_INT_BGR;
    } else {
        throw new InternalError("unrecognized source surface type");
    }
}
 
Example #12
Source File: DrawImage.java    From Bytecoder with Apache License 2.0 6 votes vote down vote up
protected boolean scaleSurfaceData(SunGraphics2D sg,
                                   Region clipRegion,
                                   SurfaceData srcData,
                                   SurfaceData dstData,
                                   SurfaceType srcType,
                                   SurfaceType dstType,
                                   int sx1, int sy1,
                                   int sx2, int sy2,
                                   double dx1, double dy1,
                                   double dx2, double dy2)
{
    CompositeType comp = sg.imageComp;
    if (CompositeType.SrcOverNoEa.equals(comp) &&
        (srcData.getTransparency() == Transparency.OPAQUE))
    {
        comp = CompositeType.SrcNoEa;
    }

    ScaledBlit blit = ScaledBlit.getFromCache(srcType, comp, dstType);
    if (blit != null) {
        blit.Scale(srcData, dstData, sg.composite, clipRegion,
                   sx1, sy1, sx2, sy2, dx1, dy1, dx2, dy2);
        return true;
    }
    return false;
}
 
Example #13
Source File: OGLBlitLoops.java    From jdk8u_jdk with GNU General Public License v2.0 6 votes vote down vote up
@Override
public synchronized void Transform(SurfaceData src, SurfaceData dst,
                                   Composite comp, Region clip,
                                   AffineTransform at, int hint, int srcx,
                                   int srcy, int dstx, int dsty, int width,
                                   int height){
    Blit convertsrc = Blit.getFromCache(src.getSurfaceType(),
                                        CompositeType.SrcNoEa,
                                        SurfaceType.IntArgbPre);
    // use cached intermediate surface, if available
    final SurfaceData cachedSrc = srcTmp != null ? srcTmp.get() : null;
    // convert source to IntArgbPre
    src = convertFrom(convertsrc, src, srcx, srcy, width, height, cachedSrc,
                      BufferedImage.TYPE_INT_ARGB_PRE);

    // transform IntArgbPre intermediate surface to OpenGL surface
    performop.Transform(src, dst, comp, clip, at, hint, 0, 0, dstx, dsty,
                        width, height);

    if (src != cachedSrc) {
        // cache the intermediate surface
        srcTmp = new WeakReference<>(src);
    }
}
 
Example #14
Source File: OGLBlitLoops.java    From jdk8u-jdk with GNU General Public License v2.0 6 votes vote down vote up
@Override
public synchronized void Transform(SurfaceData src, SurfaceData dst,
                                   Composite comp, Region clip,
                                   AffineTransform at, int hint, int srcx,
                                   int srcy, int dstx, int dsty, int width,
                                   int height){
    Blit convertsrc = Blit.getFromCache(src.getSurfaceType(),
                                        CompositeType.SrcNoEa,
                                        SurfaceType.IntArgbPre);
    // use cached intermediate surface, if available
    final SurfaceData cachedSrc = srcTmp != null ? srcTmp.get() : null;
    // convert source to IntArgbPre
    src = convertFrom(convertsrc, src, srcx, srcy, width, height, cachedSrc,
                      BufferedImage.TYPE_INT_ARGB_PRE);

    // transform IntArgbPre intermediate surface to OpenGL surface
    performop.Transform(src, dst, comp, clip, at, hint, 0, 0, dstx, dsty,
                        width, height);

    if (src != cachedSrc) {
        // cache the intermediate surface
        srcTmp = new WeakReference<>(src);
    }
}
 
Example #15
Source File: BufImgSurfaceData.java    From dragonwell8_jdk with GNU General Public License v2.0 6 votes vote down vote up
public static SurfaceData createDataBP(BufferedImage bImg,
                                       SurfaceType sType) {
    BytePackedRaster bpRaster =
        (BytePackedRaster)bImg.getRaster();
    BufImgSurfaceData bisd =
        new BufImgSurfaceData(bpRaster.getDataBuffer(), bImg, sType);
    ColorModel cm = bImg.getColorModel();
    IndexColorModel icm = ((cm instanceof IndexColorModel)
                           ? (IndexColorModel) cm
                           : null);
    bisd.initRaster(bpRaster.getDataStorage(),
                    bpRaster.getDataBitOffset() / 8,
                    bpRaster.getDataBitOffset() & 7,
                    bpRaster.getWidth(),
                    bpRaster.getHeight(),
                    0,
                    bpRaster.getScanlineStride(),
                    icm);
    return bisd;
}
 
Example #16
Source File: BufImgSurfaceData.java    From hottub with GNU General Public License v2.0 6 votes vote down vote up
public static SurfaceData createDataSC(BufferedImage bImg,
                                       SurfaceType sType,
                                       IndexColorModel icm) {
    ShortComponentRaster scRaster =
        (ShortComponentRaster)bImg.getRaster();
    BufImgSurfaceData bisd =
        new BufImgSurfaceData(scRaster.getDataBuffer(), bImg, sType);
    bisd.initRaster(scRaster.getDataStorage(),
                    scRaster.getDataOffset(0) * 2, 0,
                    scRaster.getWidth(),
                    scRaster.getHeight(),
                    scRaster.getPixelStride() * 2,
                    scRaster.getScanlineStride() * 2,
                    icm);
    return bisd;
}
 
Example #17
Source File: X11SurfaceData.java    From openjdk-jdk9 with GNU General Public License v2.0 5 votes vote down vote up
protected X11SurfaceData(X11ComponentPeer peer,
                         X11GraphicsConfig gc,
                         SurfaceType sType,
                         ColorModel cm) {
    super(sType, cm);
    this.peer = peer;
    this.graphicsConfig = gc;
    this.solidloops = graphicsConfig.getSolidLoops(sType);
    this.depth = cm.getPixelSize();
    initOps(peer, graphicsConfig, depth);
    if (isAccelerationEnabled()) {
        setBlitProxyKey(gc.getProxyKey());
    }
}
 
Example #18
Source File: Win32GraphicsConfig.java    From dragonwell8_jdk with GNU General Public License v2.0 5 votes vote down vote up
public synchronized RenderLoops getSolidLoops(SurfaceType stype) {
    if (solidloops == null || sTypeOrig != stype) {
        solidloops = SurfaceData.makeRenderLoops(SurfaceType.OpaqueColor,
                                                 CompositeType.SrcNoEa,
                                                 stype);
        sTypeOrig = stype;
    }
    return solidloops;
}
 
Example #19
Source File: D3DDrawImage.java    From TencentKona-8 with GNU General Public License v2.0 5 votes vote down vote up
@Override
protected void renderImageXform(SunGraphics2D sg, Image img,
                                AffineTransform tx, int interpType,
                                int sx1, int sy1, int sx2, int sy2,
                                Color bgColor)
{
    // punt to the MediaLib-based transformImage() in the superclass if:
    //     - bicubic interpolation is specified
    //     - a background color is specified and will be used
    //     - an appropriate TransformBlit primitive could not be found
    if (interpType != AffineTransformOp.TYPE_BICUBIC) {
        SurfaceData dstData = sg.surfaceData;
        SurfaceData srcData =
            dstData.getSourceSurfaceData(img,
                                         sg.TRANSFORM_GENERIC,
                                         sg.imageComp,
                                         bgColor);

        if (srcData != null && !isBgOperation(srcData, bgColor)) {
            SurfaceType srcType = srcData.getSurfaceType();
            SurfaceType dstType = dstData.getSurfaceType();
            TransformBlit blit = TransformBlit.getFromCache(srcType,
                                                            sg.imageComp,
                                                            dstType);

            if (blit != null) {
                blit.Transform(srcData, dstData,
                               sg.composite, sg.getCompClip(),
                               tx, interpType,
                               sx1, sy1, 0, 0, sx2-sx1, sy2-sy1);
                return;
            }
        }
    }

    super.renderImageXform(sg, img, tx, interpType,
                           sx1, sy1, sx2, sy2, bgColor);
}
 
Example #20
Source File: D3DSurfaceData.java    From jdk8u-jdk with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Returns the appropriate SurfaceType corresponding to the given D3D
 * surface type constant (e.g. TEXTURE -> D3DTexture).
 */
private static SurfaceType getCustomSurfaceType(int d3dType) {
    switch (d3dType) {
    case TEXTURE:
        return D3DTexture;
    case RT_TEXTURE:
        return D3DSurfaceRTT;
    default:
        return D3DSurface;
    }
}
 
Example #21
Source File: X11SurfaceData.java    From dragonwell8_jdk with GNU General Public License v2.0 5 votes vote down vote up
public X11WindowSurfaceData(X11ComponentPeer peer,
                            X11GraphicsConfig gc,
                            SurfaceType sType) {
    super(peer, gc, sType, peer.getColorModel());
    if (isDrawableValid()) {
        makePipes();
    }
}
 
Example #22
Source File: X11GraphicsDevice.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 5 votes vote down vote up
public Object getProxyKeyFor(SurfaceType st) {
    synchronized (x11ProxyKeyMap) {
        Object o = x11ProxyKeyMap.get(st);
        if (o == null) {
            o = new Object();
            x11ProxyKeyMap.put(st, o);
        }
        return o;
    }
}
 
Example #23
Source File: BufImgSurfaceData.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 5 votes vote down vote up
public BufImgSurfaceData(DataBuffer db,
                         BufferedImage bufImg, SurfaceType sType)
{
    super(SunWritableRaster.stealTrackable(db),
          sType, bufImg.getColorModel());
    this.bufImg = bufImg;
}
 
Example #24
Source File: X11SurfaceData.java    From jdk8u_jdk with GNU General Public License v2.0 5 votes vote down vote up
public X11WindowSurfaceData(X11ComponentPeer peer,
                            X11GraphicsConfig gc,
                            SurfaceType sType) {
    super(peer, gc, sType, peer.getColorModel());
    if (isDrawableValid()) {
        makePipes();
    }
}
 
Example #25
Source File: SurfaceData.java    From openjdk-8-source with GNU General Public License v2.0 5 votes vote down vote up
protected SurfaceData(StateTrackableDelegate trackable,
                      SurfaceType surfaceType, ColorModel cm)
{
    this.stateDelegate = trackable;
    this.colorModel = cm;
    this.surfaceType = surfaceType;
    valid = true;
}
 
Example #26
Source File: OGLSurfaceData.java    From Bytecoder with Apache License 2.0 5 votes vote down vote up
/**
 * Returns the appropriate SurfaceType corresponding to the given OpenGL
 * surface type constant (e.g. TEXTURE -> OpenGLTexture).
 */
private static SurfaceType getCustomSurfaceType(int oglType) {
    switch (oglType) {
    case TEXTURE:
        return OpenGLTexture;
    case FBOBJECT:
        return OpenGLSurfaceRTT;
    default:
        return OpenGLSurface;
    }
}
 
Example #27
Source File: SurfaceData.java    From openjdk-8-source with GNU General Public License v2.0 5 votes vote down vote up
private static SurfaceType getPaintSurfaceType(SunGraphics2D sg2d) {
    switch (sg2d.paintState) {
    case SunGraphics2D.PAINT_OPAQUECOLOR:
        return SurfaceType.OpaqueColor;
    case SunGraphics2D.PAINT_ALPHACOLOR:
        return SurfaceType.AnyColor;
    case SunGraphics2D.PAINT_GRADIENT:
        if (sg2d.paint.getTransparency() == OPAQUE) {
            return SurfaceType.OpaqueGradientPaint;
        } else {
            return SurfaceType.GradientPaint;
        }
    case SunGraphics2D.PAINT_LIN_GRADIENT:
        if (sg2d.paint.getTransparency() == OPAQUE) {
            return SurfaceType.OpaqueLinearGradientPaint;
        } else {
            return SurfaceType.LinearGradientPaint;
        }
    case SunGraphics2D.PAINT_RAD_GRADIENT:
        if (sg2d.paint.getTransparency() == OPAQUE) {
            return SurfaceType.OpaqueRadialGradientPaint;
        } else {
            return SurfaceType.RadialGradientPaint;
        }
    case SunGraphics2D.PAINT_TEXTURE:
        if (sg2d.paint.getTransparency() == OPAQUE) {
            return SurfaceType.OpaqueTexturePaint;
        } else {
            return SurfaceType.TexturePaint;
        }
    default:
    case SunGraphics2D.PAINT_CUSTOM:
        return SurfaceType.AnyPaint;
    }
}
 
Example #28
Source File: OGLSurfaceData.java    From jdk8u-dev-jdk with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Returns the appropriate SurfaceType corresponding to the given OpenGL
 * surface type constant (e.g. TEXTURE -> OpenGLTexture).
 */
private static SurfaceType getCustomSurfaceType(int oglType) {
    switch (oglType) {
    case TEXTURE:
        return OpenGLTexture;
    case FBOBJECT:
        return OpenGLSurfaceRTT;
    case PBUFFER:
    default:
        return OpenGLSurface;
    }
}
 
Example #29
Source File: X11SurfaceData.java    From dragonwell8_jdk with GNU General Public License v2.0 5 votes vote down vote up
protected X11SurfaceData(X11ComponentPeer peer,
                         X11GraphicsConfig gc,
                         SurfaceType sType,
                         ColorModel cm) {
    super(sType, cm);
    this.peer = peer;
    this.graphicsConfig = gc;
    this.solidloops = graphicsConfig.getSolidLoops(sType);
    this.depth = cm.getPixelSize();
    initOps(peer, graphicsConfig, depth);
    if (isAccelerationEnabled()) {
        setBlitProxyKey(gc.getProxyKey());
    }
}
 
Example #30
Source File: OGLBlitLoops.java    From jdk8u60 with GNU General Public License v2.0 5 votes vote down vote up
OGLAnyCompositeBlit(SurfaceType srctype, Blit convertsrc, Blit convertdst,
                    Blit convertresult) {
    super(srctype, CompositeType.Any, OGLSurfaceData.OpenGLSurface);
    this.convertsrc = convertsrc;
    this.convertdst = convertdst;
    this.convertresult = convertresult;
}