private void InitializeContext(CGContext context) { this.context = context; modelMatrix = new Matrix(); viewMatrix = new Matrix(); ResetTransform(); boundingBox = context.GetClipBoundingBox(); // We are going to try this here and it may cause problems down the road. // This seems to only happen with Mac and not iOS // What is happening is that sub views are offset by their relative location // within the window. That means our drawing locations are also offset by this // value as well. So what we need to do is translate our view by this offset as well. subviewClipOffset = context.GetClipBoundingBox(); PageUnit = GraphicsUnit.Pixel; PageScale = 1; // Set anti-aliasing SmoothingMode = SmoothingMode.Default; clipRegion = new Region (); }
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); } }