Lua - add gui.drawImageRegion()

This commit is contained in:
adelikat 2015-03-23 21:27:24 +00:00
parent 52659ac9a9
commit e4b613d9f7
1 changed files with 34 additions and 0 deletions

View File

@ -339,6 +339,40 @@ namespace BizHawk.Client.EmuHawk
}
}
[LuaMethodAttributes(
"drawImageRegion",
"draws a given region of an image file from the given path at the given coordinate, and optionally with the given size"
)]
public void DrawImageRegion(string path, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int? dest_width = null, int? dest_height = null)
{
GlobalWin.DisplayManager.NeedsToPaint = true;
using (var g = GetGraphics())
{
Image img;
if (ImageCache.ContainsKey(path))
{
img = ImageCache[path];
}
else
{
img = Image.FromFile(path);
ImageCache.Add(path, img);
}
var pts = new Point[]
{
new Point(dest_x, dest_y ),
new Point(dest_x + (dest_width ?? img.Width), dest_y),
new Point(dest_x + (dest_width ?? source_width), dest_y + (dest_height ?? source_height))
};
var rect = new Rectangle(source_x, source_y, source_width, source_height);
g.DrawImage(img, pts, rect, GraphicsUnit.Pixel);
}
}
[LuaMethodAttributes(
"drawLine",
"Draws a line from the first coordinate pair to the 2nd. Color is optional (if not specified it will be drawn black)"