backward compatible small fixes

This commit is contained in:
Michele 2021-01-18 10:05:40 +00:00
parent 70abe86ae3
commit 5c0608c537
4 changed files with 58 additions and 81 deletions

View file

@ -97,7 +97,7 @@ namespace Sledgemapper
private void ResetRenderTarget()
{
rendertarget = new RenderTarget2D(GraphicsDevice, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, false, SurfaceFormat.Color, DepthFormat.None, 0, RenderTargetUsage.DiscardContents);
rendertarget = new RenderTarget2D(GraphicsDevice, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, false, SurfaceFormat.Color, DepthFormat.None, 0, RenderTargetUsage.DiscardContents);
}
@ -106,7 +106,7 @@ namespace Sledgemapper
rendertarget?.Dispose();
try
{
ResetRenderTarget();
ResetRenderTarget();
// rendertarget = new RenderTarget2D(GraphicsDevice, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, true, SurfaceFormat.Alpha8, DepthFormat.Depth16, 0, RenderTargetUsage.DiscardContents);
//rendertarget = new RenderTarget2D(GraphicsDevice, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height);
@ -171,9 +171,9 @@ ResetRenderTarget();
_mainWidget.BtnToolbarTile.Visible=false;
_mainWidget.BtnToolbarWall.Visible=false;
AddItemToToolGrid(_mainWidget.GridWalls, OnWallButtonClicked, "walls");
_mainWidget.BtnToolbarTile.Visible = false;
_mainWidget.BtnToolbarWall.Visible = false;
AddItemToToolGrid(_mainWidget.GridWalls, OnWallButtonClicked, "walls");
AddItemToToolGrid(_mainWidget.GridOverlays, OnOverlayButtonClicked, "overlays");
_fonts = Content.LoadContentFolder<SpriteFont>("fonts");
@ -508,6 +508,9 @@ ResetRenderTarget();
switch (_state.InsertMode)
{
case InsertMode.Tile:
case InsertMode.NewRoom:
case InsertMode.NewLine:
case InsertMode.NewDelete:
_state.SelectedTile.X = _state.HoveredTile.X;
_state.SelectedTile.Y = _state.HoveredTile.Y;
_sessionData.DeleteTile(_state.SelectedTile);
@ -590,8 +593,8 @@ ResetRenderTarget();
_spriteBatch.Begin(depthStencilState: DepthStencilState.None,
transformMatrix: Matrix.CreateTranslation(_viewportCenter),
blendState: BlendState.Opaque,
//rasterizerState:RasterizerState.CullClockwise,
samplerState:SamplerState.PointClamp,
//rasterizerState:RasterizerState.CullClockwise,
samplerState: SamplerState.PointClamp,
sortMode: SpriteSortMode.Deferred);
@ -624,14 +627,14 @@ ResetRenderTarget();
GraphicsDevice.SetRenderTarget(null);
Vector2 texelSize = new Vector2((float)rendertarget.Width, (float)rendertarget.Height);
Vector2 texelSize = new Vector2((float)rendertarget.Width, (float)rendertarget.Height);
outlineShader.Parameters["ImageSize"].SetValue(texelSize);
outlineShader.Parameters["BorderSize"].SetValue((int)(_state.TileSize / 100f *10f));
outlineShader.Parameters["BorderSize"].SetValue((int)(_state.TileSize / 100f * 10f));
outlineShader.Parameters["R"].SetValue(_settings.OverlayTintColor.R / 255.0f);
outlineShader.Parameters["G"].SetValue(_settings.OverlayTintColor.G / 255.0f);
outlineShader.Parameters["B"].SetValue(_settings.OverlayTintColor.B / 255.0f);
// outlineShader2.Parameters["ScreenSize"].SetValue(texelSize);
// outlineShader2.Parameters["ScreenSize"].SetValue(texelSize);
_spriteBatch.Begin(
effect: outlineShader,
blendState: BlendState.NonPremultiplied,
@ -643,7 +646,7 @@ ResetRenderTarget();
_spriteBatch.Begin(
transformMatrix: Matrix.CreateTranslation(_viewportCenter),
sortMode: SpriteSortMode.Deferred);
DrawTiles();
DrawWalls();
DrawOverlays();
DrawNotes();
@ -1164,33 +1167,46 @@ ResetRenderTarget();
// }
// border pass
foreach (var tile in _sessionData.Map.Values)
{
var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
// foreach (var tile in _sessionData.Map.Values)
// {
// var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
var posX = tile.X * _state.TileSize;
var posY = tile.Y * _state.TileSize;
// var posX = tile.X * _state.TileSize;
// var posY = tile.Y * _state.TileSize;
var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
whiteRectangle.SetData(new[] { _settings.OverlayTintColor });
// var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
// whiteRectangle.SetData(new[] { _settings.OverlayTintColor });
_spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX - _borderWidth / 2, (int)posY - _borderWidth / 2, _state.TileSize + _borderWidth, _state.TileSize + _borderWidth), null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 1);
}
// _spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX - _borderWidth / 2, (int)posY - _borderWidth / 2, _state.TileSize + _borderWidth, _state.TileSize + _borderWidth), null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 1);
// }
//inner pass
// foreach (var tile in _sessionData.Map.Values)
// {
// var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
// var posX = tile.X * _state.TileSize;
// var posY = tile.Y * _state.TileSize;
// var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
// whiteRectangle.SetData(new[] { Color.White });
// _spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX, (int)posY, _state.TileSize, _state.TileSize), null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 1);
// }
foreach (var tile in _sessionData.Map.Values)
{
var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
var posX = tile.X * _state.TileSize;
var posY = tile.Y * _state.TileSize;
var posX = tile.X * _state.TileSize + _state.TileSize / 2f;
var posY = tile.Y * _state.TileSize + _state.TileSize / 2f;
var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
whiteRectangle.SetData(new[] { Color.White });
_spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX, (int)posY, _state.TileSize, _state.TileSize), null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 1);
_spriteBatch.Draw(content, new Vector2(posX, posY),
null, Color.White, MathHelper.ToRadians(90 * tile.Rotation), new Vector2(content.Width / 2, content.Height / 2), ((float)_state.TileSize) / content.Width, SpriteEffects.None, 0);
}
}
private void DrawLine(Line tile)
{
@ -1329,10 +1345,10 @@ ResetRenderTarget();
var endposX = tile.End.X * _state.TileSize;
var endposY = tile.End.Y * _state.TileSize;
var ww = _state.TileSize / _settings.TileDeleteDivider;
if (posX == endposX) { endposX += ww; posX -= ww; }
if (posY == endposY) { endposY += ww; posY -= ww; }
var ww = _state.TileSize / _settings.TileDeleteDivider;
if (posX == endposX) { endposX += ww; posX -= ww; }
if (posY == endposY) { endposY += ww; posY -= ww; }
switch (tile.Start.Index)
{
case 1: