static void IsoBlit(SurfaceData srcData,SurfaceData dstData,BufferedImage srcImg,BufferedImageOp biop,Composite comp,Region clip,AffineTransform xform,int hint,int sx1,int sy1,int sx2,int sy2,double dx1,double dy1,double dx2,double dy2,boolean texture){
  int ctxflags=0;
  if (srcData.getTransparency() == Transparency.OPAQUE) {
    ctxflags|=OGLContext.SRC_IS_OPAQUE;
  }
  OGLRenderQueue rq=OGLRenderQueue.getInstance();
  rq.lock();
  try {
    OGLSurfaceData oglSrc=(OGLSurfaceData)srcData;
    OGLSurfaceData oglDst=(OGLSurfaceData)dstData;
    int srctype=oglSrc.getType();
    boolean rtt;
    OGLSurfaceData srcCtxData;
    if (srctype == OGLSurfaceData.TEXTURE) {
      rtt=false;
      srcCtxData=oglDst;
    }
 else {
      rtt=true;
      if (srctype == OGLSurfaceData.FBOBJECT) {
        srcCtxData=oglDst;
      }
 else {
        srcCtxData=oglSrc;
      }
    }
    OGLContext.validateContext(srcCtxData,oglDst,clip,comp,xform,null,null,ctxflags);
    if (biop != null) {
      OGLBufImgOps.enableBufImgOp(rq,oglSrc,srcImg,biop);
    }
    int packedParams=createPackedParams(true,texture,rtt,xform != null,hint,0);
    enqueueBlit(rq,srcData,dstData,packedParams,sx1,sy1,sx2,sy2,dx1,dy1,dx2,dy2);
    if (biop != null) {
      OGLBufImgOps.disableBufImgOp(rq,biop);
    }
    if (rtt && oglDst.isOnScreen()) {
      rq.flushNow();
    }
  }
  finally {
    rq.unlock();
  }
}

static void IsoBlit ( SurfaceData srcData , SurfaceData dstData , BufferedImage srcImg , BufferedImageOp biop , Composite comp , Region clip , AffineTransform xform , int hint , int sx1 , int sy1 , int sx2 , int sy2 , double dx1 , double dy1 , double dx2 , double dy2 , boolean texture ) { int ctxflags = 0 ; if ( srcData . getTransparency ( ) == Transparency . OPAQUE ) { ctxflags |= OGLContext . SRC_IS_OPAQUE ; } OGLRenderQueue rq = OGLRenderQueue . getInstance ( ) ; rq . lock ( ) ; try { OGLSurfaceData oglSrc = ( OGLSurfaceData ) srcData ; OGLSurfaceData oglDst = ( OGLSurfaceData ) dstData ; int srctype = oglSrc . getType ( ) ; boolean rtt ; OGLSurfaceData srcCtxData ; if ( srctype == OGLSurfaceData . TEXTURE ) { rtt = false ; srcCtxData = oglDst ; } else { rtt = true ; if ( srctype == OGLSurfaceData . FBOBJECT ) { srcCtxData = oglDst ; } else { srcCtxData = oglSrc ; } } OGLContext . validateContext ( srcCtxData , oglDst , clip , comp , xform , null , null , ctxflags ) ; if ( biop != null ) { OGLBufImgOps . enableBufImgOp ( rq , oglSrc , srcImg , biop ) ; } int packedParams = createPackedParams ( true , texture , rtt , xform != null , hint , 0 ) ; enqueueBlit ( rq , srcData , dstData , packedParams , sx1 , sy1 , sx2 , sy2 , dx1 , dy1 , dx2 , dy2 ) ; if ( biop != null ) { OGLBufImgOps . disableBufImgOp ( rq , biop ) ; } if ( rtt && oglDst . isOnScreen ( ) ) { rq . flushNow ( ) ; } } finally { rq . unlock ( ) ; } }
note : the srcimg and biop parameters are only used when invoked from the oglbufimgops . renderimagewithop ( ) method ; in all other cases , this method can be called with null values for those two parameters , and they will be effectively ignored .
