65 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.Text;
 | 
						|
 | 
						|
using Microsoft.Xna.Framework;
 | 
						|
using Microsoft.Xna.Framework.Graphics;
 | 
						|
 | 
						|
using Engine.Core;
 | 
						|
 | 
						|
namespace Engine.Integration.MonoGame;
 | 
						|
 | 
						|
public class SpriteBatchWrapper(GraphicsDevice graphicsDevice) : ISpriteBatch
 | 
						|
{
 | 
						|
    private readonly SpriteBatch spriteBatch = new(graphicsDevice);
 | 
						|
 | 
						|
    public void Begin(SpriteSortMode sortMode = SpriteSortMode.Deferred, BlendState? blendState = null, SamplerState? samplerState = null, DepthStencilState? depthStencilState = null, RasterizerState? rasterizerState = null, Effect? effect = null, Matrix? transformMatrix = null)
 | 
						|
        => spriteBatch.Begin(sortMode, blendState, samplerState, depthStencilState, rasterizerState, effect, transformMatrix);
 | 
						|
 | 
						|
    public void Draw(Texture2D texture, Vector2D position, AABB2D? sourceAABB, Color color, float rotation, Vector2D origin, Vector2D scale, SpriteEffects effects, float layerDepth)
 | 
						|
        => spriteBatch.Draw(texture, position.ToDisplayVector2(), sourceAABB?.ToRectangle(), color, rotation, origin.ToDisplayVector2(), scale.ToDisplayVector2(), effects, layerDepth);
 | 
						|
 | 
						|
    public void Draw(Texture2D texture, Vector2D position, AABB2D? sourceAABB, Color color, float rotation, Vector2D origin, float scale, SpriteEffects effects, float layerDepth)
 | 
						|
        => spriteBatch.Draw(texture, position.ToDisplayVector2(), sourceAABB?.ToRectangle(), color, rotation, origin.ToDisplayVector2(), scale, effects, layerDepth);
 | 
						|
 | 
						|
    public void Draw(Texture2D texture, AABB2D destinationAABB, AABB2D? sourceAABB, Color color, float rotation, Vector2D origin, SpriteEffects effects, float layerDepth)
 | 
						|
        => spriteBatch.Draw(texture, destinationAABB.ToRectangle(), sourceAABB?.ToRectangle(), color, rotation, origin.ToDisplayVector2(), effects, layerDepth);
 | 
						|
 | 
						|
    public void Draw(Texture2D texture, Vector2D position, AABB2D? sourceAABB, Color color)
 | 
						|
        => spriteBatch.Draw(texture, position.ToDisplayVector2(), sourceAABB?.ToRectangle(), color);
 | 
						|
 | 
						|
    public void Draw(Texture2D texture, AABB2D destinationAABB, AABB2D? sourceAABB, Color color)
 | 
						|
        => spriteBatch.Draw(texture, destinationAABB.ToRectangle(), sourceAABB?.ToRectangle(), color);
 | 
						|
 | 
						|
    public void Draw(Texture2D texture, Vector2D position, Color color)
 | 
						|
        => spriteBatch.Draw(texture, position.ToDisplayVector2(), color);
 | 
						|
 | 
						|
    public void Draw(Texture2D texture, AABB2D destinationAABB, Color color)
 | 
						|
        => spriteBatch.Draw(texture, destinationAABB.ToRectangle(), color);
 | 
						|
 | 
						|
    public void DrawString(SpriteFont spriteFont, string text, Vector2D position, Color color)
 | 
						|
        => spriteBatch.DrawString(spriteFont, text, position.ToDisplayVector2(), color);
 | 
						|
 | 
						|
    public void DrawString(SpriteFont spriteFont, string text, Vector2D position, Color color, float rotation, Vector2D origin, float scale, SpriteEffects effects, float layerDepth)
 | 
						|
        => spriteBatch.DrawString(spriteFont, text, position.ToDisplayVector2(), color, rotation, origin.ToDisplayVector2(), scale, effects, layerDepth);
 | 
						|
 | 
						|
    public void DrawString(SpriteFont spriteFont, string text, Vector2D position, Color color, float rotation, Vector2D origin, Vector2D scale, SpriteEffects effects, float layerDepth)
 | 
						|
        => spriteBatch.DrawString(spriteFont, text, position.ToDisplayVector2(), color, rotation, origin.ToDisplayVector2(), scale.ToDisplayVector2(), effects, layerDepth);
 | 
						|
 | 
						|
    public void DrawString(SpriteFont spriteFont, string text, Vector2D position, Color color, float rotation, Vector2D origin, Vector2D scale, SpriteEffects effects, float layerDepth, bool rtl)
 | 
						|
        => spriteBatch.DrawString(spriteFont, text, position.ToDisplayVector2(), color, rotation, origin.ToDisplayVector2(), scale.ToDisplayVector2(), effects, layerDepth, rtl);
 | 
						|
 | 
						|
    public void DrawString(SpriteFont spriteFont, StringBuilder text, Vector2D position, Color color)
 | 
						|
        => spriteBatch.DrawString(spriteFont, text, position.ToDisplayVector2(), color);
 | 
						|
 | 
						|
    public void DrawString(SpriteFont spriteFont, StringBuilder text, Vector2D position, Color color, float rotation, Vector2D origin, float scale, SpriteEffects effects, float layerDepth)
 | 
						|
        => spriteBatch.DrawString(spriteFont, text, position.ToDisplayVector2(), color, rotation, origin.ToDisplayVector2(), scale, effects, layerDepth);
 | 
						|
 | 
						|
    public void DrawString(SpriteFont spriteFont, StringBuilder text, Vector2D position, Color color, float rotation, Vector2D origin, Vector2D scale, SpriteEffects effects, float layerDepth)
 | 
						|
        => spriteBatch.DrawString(spriteFont, text, position.ToDisplayVector2(), color, rotation, origin.ToDisplayVector2(), scale.ToDisplayVector2(), effects, layerDepth);
 | 
						|
 | 
						|
    public void DrawString(SpriteFont spriteFont, StringBuilder text, Vector2D position, Color color, float rotation, Vector2D origin, Vector2D scale, SpriteEffects effects, float layerDepth, bool rtl)
 | 
						|
        => spriteBatch.DrawString(spriteFont, text, position.ToDisplayVector2(), color, rotation, origin.ToDisplayVector2(), scale.ToDisplayVector2(), effects, layerDepth, rtl);
 | 
						|
 | 
						|
    public void End()
 | 
						|
        => spriteBatch.End();
 | 
						|
}
 |