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|=D3DContext.SRC_IS_OPAQUE;
  }
  D3DSurfaceData d3dDst=(D3DSurfaceData)dstData;
  D3DRenderQueue rq=D3DRenderQueue.getInstance();
  boolean rtt=false;
  rq.lock();
  try {
    D3DSurfaceData d3dSrc=(D3DSurfaceData)srcData;
    int srctype=d3dSrc.getType();
    D3DSurfaceData srcCtxData=d3dSrc;
    if (srctype == D3DSurfaceData.TEXTURE) {
      rtt=false;
    }
 else {
      rtt=true;
    }
    D3DContext.validateContext(srcCtxData,d3dDst,clip,comp,xform,null,null,ctxflags);
    if (biop != null) {
      D3DBufImgOps.enableBufImgOp(rq,d3dSrc,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) {
      D3DBufImgOps.disableBufImgOp(rq,biop);
    }
  }
  finally {
    rq.unlock();
  }
  if (rtt && (d3dDst.getType() == D3DSurfaceData.WINDOW)) {
    D3DScreenUpdateManager mgr=(D3DScreenUpdateManager)ScreenUpdateManager.getInstance();
    mgr.runUpdateNow();
  }
}

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 |= D3DContext . SRC_IS_OPAQUE ; } D3DSurfaceData d3dDst = ( D3DSurfaceData ) dstData ; D3DRenderQueue rq = D3DRenderQueue . getInstance ( ) ; boolean rtt = false ; rq . lock ( ) ; try { D3DSurfaceData d3dSrc = ( D3DSurfaceData ) srcData ; int srctype = d3dSrc . getType ( ) ; D3DSurfaceData srcCtxData = d3dSrc ; if ( srctype == D3DSurfaceData . TEXTURE ) { rtt = false ; } else { rtt = true ; } D3DContext . validateContext ( srcCtxData , d3dDst , clip , comp , xform , null , null , ctxflags ) ; if ( biop != null ) { D3DBufImgOps . enableBufImgOp ( rq , d3dSrc , 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 ) { D3DBufImgOps . disableBufImgOp ( rq , biop ) ; } } finally { rq . unlock ( ) ; } if ( rtt && ( d3dDst . getType ( ) == D3DSurfaceData . WINDOW ) ) { D3DScreenUpdateManager mgr = ( D3DScreenUpdateManager ) ScreenUpdateManager . getInstance ( ) ; mgr . runUpdateNow ( ) ; } }
note : the srcimg and biop parameters are only used when invoked from the d3dbufimgops . renderimagewithop ( ) method ; in all other cases , this method can be called with null values for those two parameters , and they will be effectively ignored .
