DrawImage() 공개 메소드

public DrawImage ( RectangleF rect, CGImage image ) : void
rect System.Drawing.RectangleF
image CGImage
리턴 void
예제 #1
0
		public override void DrawInContext (CGContext ctx)
		{
			current_frame = current_frame % frames.Length;

			if (frames[current_frame] == null)
				frames[current_frame] = GuiUtil.CGImageFromBitmap (grp.GetFrame (current_frame),
											   grp.Width, grp.Height,
											   palette,
											   true);
				
			ctx.DrawImage (new RectangleF (x, y, grp.Width, grp.Height), frames[current_frame]);
		}
예제 #2
0
		public static void RenderGlyphToContext (CGContext context, PointF position, Glyph g, Fnt font, byte[] palette, int offset)
		{
			byte[] buf = new byte[g.Width * g.Height * 4];
			int i = 0;

			for (int y = g.Height - 1; y >= 0; y--) {
				for (int x = g.Width - 1; x >= 0; x--) {
					if (g.Bitmap[y,x] == 0)
						buf [i + 0] = 0;
					else if (g.Bitmap[y,x] == 1)
						buf [i + 0] = 255;
					else
						buf [i + 0] = 128;

					buf[i + 1] = palette[ (g.Bitmap[y,x]) * 3 + offset + 0];
					buf[i + 2] = palette[ (g.Bitmap[y,x]) * 3 + offset + 1];
					buf[i + 3] = palette[ (g.Bitmap[y,x]) * 3 + offset + 2];

					if (buf[i+1] == 252 && buf[i+2] == 0 && buf[i+3] == 252)
						buf[i + 0] = 0;

					i += 4;
				}
			}

			CGImage glyphImage = CreateImage (buf, (ushort)g.Width, (ushort)g.Height, 32, g.Width * 4);
			
			context.DrawImage (new RectangleF (position, new SizeF (g.Width, g.Height)), glyphImage);
		}
예제 #3
0
			void DrawPattern (CGContext context)
			{
				var destRect = new sd.RectangleF(0, 0, image.Width, image.Height);
				context.ConcatCTM (new CGAffineTransform (1, 0, 0, -1, 0, image.Height));
				context.DrawImage (destRect, image);
			}
예제 #4
0
			public override void DrawLayer (CALayer layer, CGContext context)
			{
				RectangleF box = context.GetClipBoundingBox ();
				int tile_x = (int)(box.X / 32);
				int tile_y = (int)((renderer.pixel_height - box.Y) / 32);
				
				try {
					ushort[,] mapTiles = renderer.Chk.MapTiles;
				
					CGImage image = renderer.GetTile (mapTiles[tile_x, tile_y]);
					context.DrawImage (box, image);
				}
				catch (Exception e) {
					Console.WriteLine (e);
				}
			}
        // test draw pattern
        protected void DrawTexture(CGContext context)
        {
            var destRect = new RectangleF(0,0,textureImage.Width,textureImage.Height);
            context.DrawImage(destRect, textureImage.NativeCGImage);

            if (wrapMode == WrapMode.TileFlipX)
            {
                context.ConcatCTM(CGAffineTransform.MakeScale(-1,1));
                context.DrawImage(destRect, textureImage.NativeCGImage);
            }

            if (wrapMode == WrapMode.TileFlipY)
            {
                var transformY = new CGAffineTransform(1, 0, 0, -1,
                                                       textureImage.Width,
                                                       textureImage.Height);
                context.ConcatCTM(transformY);
                context.DrawImage(destRect, textureImage.NativeCGImage);
            }

            if (wrapMode == WrapMode.TileFlipXY)
            {
                // draw the original
                var transform = new CGAffineTransform(1, 0, 0, 1,
                                                       0, textureImage.Height);
                context.ConcatCTM(transform);
                context.DrawImage(destRect, textureImage.NativeCGImage);

                // reset the transform
                context.ConcatCTM (context.GetCTM().Invert());

                // draw next to original one that is flipped by x axis
                transform = new CGAffineTransform(-1, 0, 0, 1,
                                                  textureImage.Width * 2, textureImage.Height);
                context.ConcatCTM(transform);
                context.DrawImage(destRect, textureImage.NativeCGImage);

                // reset the transform
                context.ConcatCTM (context.GetCTM().Invert());

                // draw one that is flipped by Y axis under the oricinal
                transform = new CGAffineTransform(1, 0, 0, -1,
                                                  0, textureImage.Height);
                context.ConcatCTM(transform);
                context.DrawImage(destRect, textureImage.NativeCGImage);

                // draw the last one of the quadrant which is flipped by both the y and x axis
                context.ConcatCTM (context.GetCTM().Invert());
                transform = new CGAffineTransform(-1, 0, 0, -1,
                                                  textureImage.Width * 2, textureImage.Height);
                context.ConcatCTM(transform);
                context.DrawImage(destRect, textureImage.NativeCGImage);
            }
        }
예제 #6
0
		public override void DrawLayer (CALayer layer, CGContext context)
		{
			if (el.Player.CurrentFrame != null)
				context.DrawImage (new RectangleF ( 0, el.Height - el.Player.CurrentFrame.Height * el.playerZoom, el.Player.CurrentFrame.Width, el.Player.CurrentFrame.Height), el.Player.CurrentFrame);
		}