예제 #1
0
        public void Draw(Cairo.ImageSurface dst, int tX, int tY, PixelOp pixelOp)
        {
            if (this.disposed)
            {
                throw new ObjectDisposedException("IrregularSurface");
            }

            foreach (PlacedSurface ps in this.placedSurfaces)
            {
                ps.Draw(dst, tX, tY, pixelOp);
            }
        }
예제 #2
0
        public void Draw(ImageSurface dst, int tX, int tY, PixelOp pixelOp)
        {
            if (disposed)
            {
                throw new ObjectDisposedException("PlacedSurface");
            }

            Gdk.Point oldWhere = where;

            try {
                where.X += tX;
                where.Y += tY;
                Draw(dst, pixelOp);
            } finally {
                where = oldWhere;
            }
        }
예제 #3
0
        public void Draw(ImageSurface dst, PixelOp pixelOp)
        {
            if (disposed)
            {
                throw new ObjectDisposedException("PlacedSurface");
            }

            Gdk.Rectangle dstRect = Bounds;
            Gdk.Rectangle dstClip = Gdk.Rectangle.Intersect(dstRect, dst.GetBounds());

            if (dstClip.Width > 0 && dstClip.Height > 0)
            {
                int dtX = dstClip.X - where.X;
                int dtY = dstClip.Y - where.Y;

                pixelOp.Apply(dst, dstClip.Location, what, new Gdk.Point(dtX, dtY), dstClip.Size);
            }
        }
예제 #4
0
        public void Draw(Cairo.ImageSurface dst, int tX, int tY, PixelOp pixelOp)
        {
            if (this.disposed)
                throw new ObjectDisposedException ("IrregularSurface");

            foreach (PlacedSurface ps in this.placedSurfaces)
                ps.Draw (dst, tX, tY, pixelOp);
        }
예제 #5
0
        public void Draw(ImageSurface dst, int tX, int tY, PixelOp pixelOp)
        {
            if (disposed)
                throw new ObjectDisposedException ("PlacedSurface");

            Gdk.Point oldWhere = where;

            try {
                where.X += tX;
                where.Y += tY;
                Draw (dst, pixelOp);
            } finally {
                where = oldWhere;
            }
        }
예제 #6
0
        public void Draw(ImageSurface dst, PixelOp pixelOp)
        {
            if (disposed)
                throw new ObjectDisposedException ("PlacedSurface");

            Gdk.Rectangle dstRect = Bounds;
            Gdk.Rectangle dstClip = Gdk.Rectangle.Intersect (dstRect, dst.GetBounds ());

            if (dstClip.Width > 0 && dstClip.Height > 0) {
                int dtX = dstClip.X - where.X;
                int dtY = dstClip.Y - where.Y;

                pixelOp.Apply (dst, dstClip.Location, what, new Gdk.Point (dtX, dtY), dstClip.Size);
            }
        }