improved shader performance
This commit is contained in:
parent
be8e56cf27
commit
24b773d845
3 changed files with 160 additions and 38 deletions
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue