public void DrawImage(IPRImage image, int xWorld, int yWorld) { if (image.NativeObject == null) { RegisterNativeResources(image); } Sprite sprite = image.NativeObject as Sprite; if (sprite != null) { //TODO: anything more sensible sprite.Position = new SFML.Window.Vector2f(xWorld, yWorld); sprite.Draw(_target, _states); //debug code /*CircleShape cir = new CircleShape(8, 6); * _states.Shader = null; * cir.Position = new Vector2f(xWorld, yWorld); * cir.FillColor = Color.Blue; * cir.OutlineThickness = 3; * cir.OutlineColor = Color.Green; * * _target.Draw(cir, _states);*/ } }
public bool RegisterNativeResources(IPRImage image) { if (image.NativeObject != null) { //reloading, or new renderer? FreeNativeResources(image); } System.Drawing.Bitmap b = image.Image; byte[] pixels = b.GetCopyOfBytesABGR32(); image.NativeObject = new Sprite(new Texture(new Image((uint)b.Width, (uint)b.Height, pixels))); //new IntRect(0, 0, b.Width, b.Height)); //image.NativeObject = new Sprite(new Texture(@"c:\temp\dump.bmp")); return(true); }
public void DrawSubImage(IPRImage image, System.Drawing.Rectangle region, int xWorld, int yWorld) { if (image.NativeObject == null) { RegisterNativeResources(image); } Sprite sprite = image.NativeObject as Sprite; if (sprite != null) { //TODO: anything more sensible sprite.Position = new SFML.Window.Vector2f(xWorld, yWorld); sprite.TextureRect = new IntRect(region.Left, region.Top, region.Width, region.Height); sprite.Scale = new Vector2f(1, 1); //sprite.TextureRect = new IntRect(0,0,128,128); sprite.Draw(_target, _states); } }
public bool FreeNativeResources(IPRImage image) { if (image.NativeObject != null) { if (image.NativeObject is Sprite) { ((Sprite)image.NativeObject).Dispose(); } if (image.NativeObject is IDisposable) { ((IDisposable)image.NativeObject).Dispose(); WDAppLog.LogNeverSupposedToBeHere(); } else { WDAppLog.LogNeverSupposedToBeHere(); } image.NativeObject = null; } return(true); }