improved shader performance

This commit is contained in:
Michele 2021-01-14 23:34:14 +00:00
parent be8e56cf27
commit 24b773d845
3 changed files with 160 additions and 38 deletions

View file

@ -601,7 +601,7 @@ namespace Sledgemapper
}
}
//DrawWalls();
//
_spriteBatch.End();
@ -609,7 +609,7 @@ namespace Sledgemapper
Vector2 texelSize = new Vector2((float)(1 / (double)rendertarget.Width), (float)(1 / (double)rendertarget.Height));
outlineShader.Parameters["TexelSize"].SetValue(texelSize);
outlineShader.Parameters["BorderSize"].SetValue(_state.TileSize / 8);
outlineShader.Parameters["BorderSize"].SetValue((int)(_state.TileSize / 100f *20f));
outlineShader.Parameters["R"].SetValue(_settings.OverlayTintColor.R / 255.0f);
outlineShader.Parameters["G"].SetValue(_settings.OverlayTintColor.G / 255.0f);
@ -627,6 +627,7 @@ namespace Sledgemapper
transformMatrix: Matrix.CreateTranslation(_viewportCenter),
sortMode: SpriteSortMode.Deferred);
DrawWalls();
DrawOverlays();
DrawNotes();
DrawGrid(visibleTilesX, visibleTilesY);
@ -825,7 +826,12 @@ namespace Sledgemapper
var endposX = _state.SelectedSnapPoint.X * _state.TileSize;
var endposY = _state.SelectedSnapPoint.Y * _state.TileSize;
if (_state.InsertMode == InsertMode.NewDelete)
{
var ww = _state.TileSize / _settings.TileDeleteDivider;
if (posX == endposX) { endposX += ww; posX -= ww; }
if (posY == endposY) { endposY += ww; posY -= ww; }
}
switch (_state.LineStart.Index)
{
case 1:
@ -1297,7 +1303,7 @@ namespace Sledgemapper
}
Effect outlineShader; // Outline shader effect
private void DrawDelete(Room tile)
private void DrawDelete(Room tile)
{
var posX = tile.Start.X * _state.TileSize;
var posY = tile.Start.Y * _state.TileSize;
@ -1305,6 +1311,10 @@ namespace Sledgemapper
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; }
switch (tile.Start.Index)
{
case 1: