public Int(IntegerInterleavedRaster srcRas, ColorModel cm, AffineTransform xform, int maxw, bool filter) : base(cm, xform, srcRas.Width, srcRas.Height, maxw)
 {
     this.SrcRas = srcRas;
     this.InData = srcRas.DataStorage;
     this.InSpan = srcRas.ScanlineStride;
     this.InOff  = srcRas.getDataOffset(0);
     this.Filter = filter;
 }
            public override WritableRaster MakeRaster(int w, int h)
            {
                WritableRaster           ras   = MakeRaster(ColorModel_Renamed, SrcRas, w, h);
                IntegerInterleavedRaster iiRas = (IntegerInterleavedRaster)ras;

                OutData = iiRas.DataStorage;
                OutSpan = iiRas.ScanlineStride;
                OutOff  = iiRas.getDataOffset(0);
                return(ras);
            }
            public override WritableRaster MakeRaster(int w, int h)
            {
                // Note that we do not pass srcRas to makeRaster since it
                // is a Byte Raster and this colorModel needs an Int Raster
                WritableRaster           ras   = MakeRaster(ColorModel_Renamed, null, w, h);
                IntegerInterleavedRaster iiRas = (IntegerInterleavedRaster)ras;

                OutData = iiRas.DataStorage;
                OutSpan = iiRas.ScanlineStride;
                OutOff  = iiRas.getDataOffset(0);
                return(ras);
            }
        public static PaintContext GetContext(BufferedImage bufImg, AffineTransform xform, RenderingHints hints, Rectangle devBounds)
        {
            WritableRaster raster = bufImg.Raster;
            ColorModel     cm     = bufImg.ColorModel;
            int            maxw   = devBounds.Width_Renamed;
            Object         val    = hints[RenderingHints.KEY_INTERPOLATION];
            bool           filter = (val == null ? (hints[RenderingHints.KEY_RENDERING] == RenderingHints.VALUE_RENDER_QUALITY) : (val != RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR));

            if (raster is IntegerInterleavedRaster && (!filter || IsFilterableDCM(cm)))
            {
                IntegerInterleavedRaster iir = (IntegerInterleavedRaster)raster;
                if (iir.NumDataElements == 1 && iir.PixelStride == 1)
                {
                    return(new Int(iir, cm, xform, maxw, filter));
                }
            }
            else if (raster is ByteInterleavedRaster)
            {
                ByteInterleavedRaster bir = (ByteInterleavedRaster)raster;
                if (bir.NumDataElements == 1 && bir.PixelStride == 1)
                {
                    if (filter)
                    {
                        if (IsFilterableICM(cm))
                        {
                            return(new ByteFilter(bir, cm, xform, maxw));
                        }
                    }
                    else
                    {
                        return(new Byte(bir, cm, xform, maxw));
                    }
                }
            }
            return(new Any(raster, cm, xform, maxw, filter));
        }