mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-02-28 14:51:36 +00:00
fixed invisible selection rectangle in low-quality rendering mode
This commit is contained in:
parent
0dd329bb5e
commit
62f1b73faf
4 changed files with 15 additions and 62 deletions
BIN
Resources/White.png
Normal file
BIN
Resources/White.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 137 B |
|
@ -506,6 +506,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="Resources\DB2.ico" />
|
<Content Include="Resources\DB2.ico" />
|
||||||
|
<EmbeddedResource Include="Resources\White.png" />
|
||||||
<EmbeddedResource Include="Resources\color2d.fx" />
|
<EmbeddedResource Include="Resources\color2d.fx" />
|
||||||
<None Include="Resources\Splash2_small.png" />
|
<None Include="Resources\Splash2_small.png" />
|
||||||
<None Include="Resources\Splash2_trans.png" />
|
<None Include="Resources\Splash2_trans.png" />
|
||||||
|
|
|
@ -106,6 +106,7 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
private RenderLayers renderlayer = RenderLayers.None;
|
private RenderLayers renderlayer = RenderLayers.None;
|
||||||
|
|
||||||
// Images
|
// Images
|
||||||
|
private ResourceImage whitetexture;
|
||||||
private ResourceImage thingtexture;
|
private ResourceImage thingtexture;
|
||||||
private ResourceImage thingtexturesimple;
|
private ResourceImage thingtexturesimple;
|
||||||
|
|
||||||
|
@ -145,6 +146,10 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
thingtexture.UseColorCorrection = false;
|
thingtexture.UseColorCorrection = false;
|
||||||
thingtexture.LoadImage();
|
thingtexture.LoadImage();
|
||||||
thingtexture.CreateTexture();
|
thingtexture.CreateTexture();
|
||||||
|
whitetexture = new ResourceImage("White.png");
|
||||||
|
whitetexture.UseColorCorrection = false;
|
||||||
|
whitetexture.LoadImage();
|
||||||
|
whitetexture.CreateTexture();
|
||||||
|
|
||||||
// Create rendertargets
|
// Create rendertargets
|
||||||
CreateRendertargets();
|
CreateRendertargets();
|
||||||
|
@ -163,6 +168,7 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
DestroyRendertargets();
|
DestroyRendertargets();
|
||||||
thingtexture.Dispose();
|
thingtexture.Dispose();
|
||||||
thingtexturesimple.Dispose();
|
thingtexturesimple.Dispose();
|
||||||
|
whitetexture.Dispose();
|
||||||
|
|
||||||
// Done
|
// Done
|
||||||
base.Dispose();
|
base.Dispose();
|
||||||
|
@ -246,7 +252,7 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
graphics.Device.SetRenderState(RenderState.AlphaTestEnable, false);
|
graphics.Device.SetRenderState(RenderState.AlphaTestEnable, false);
|
||||||
graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
|
graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
|
||||||
graphics.Device.SetRenderState(RenderState.DestBlend, Blend.InvSourceAlpha);
|
graphics.Device.SetRenderState(RenderState.DestBlend, Blend.InvSourceAlpha);
|
||||||
graphics.Device.SetRenderState(RenderState.TextureFactor, (new ColorValue(1f, 1f, 1f, 1f)).ToArgb());
|
graphics.Device.SetRenderState(RenderState.TextureFactor, -1);
|
||||||
graphics.Device.SetTexture(0, overlaytex);
|
graphics.Device.SetTexture(0, overlaytex);
|
||||||
graphics.Shaders.Display2D.Texture1 = overlaytex;
|
graphics.Shaders.Display2D.Texture1 = overlaytex;
|
||||||
graphics.Shaders.Display2D.SetSettings(1f / thingssize.Width, 1f / thingssize.Height, FSAA_BLEND_FACTOR, 1f);
|
graphics.Shaders.Display2D.SetSettings(1f / thingssize.Width, 1f / thingssize.Height, FSAA_BLEND_FACTOR, 1f);
|
||||||
|
@ -260,6 +266,10 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
graphics.Shaders.Display2D.End();
|
graphics.Shaders.Display2D.End();
|
||||||
graphics.FinishRendering();
|
graphics.FinishRendering();
|
||||||
graphics.Present();
|
graphics.Present();
|
||||||
|
|
||||||
|
// Release binds
|
||||||
|
graphics.Device.SetTexture(0, null);
|
||||||
|
graphics.Shaders.Display2D.Texture1 = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -630,9 +640,6 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
// This ends a drawing session
|
// This ends a drawing session
|
||||||
public void Finish()
|
public void Finish()
|
||||||
{
|
{
|
||||||
// Stop rendering
|
|
||||||
graphics.FinishRendering();
|
|
||||||
|
|
||||||
// Clean up plotter
|
// Clean up plotter
|
||||||
if(renderlayer == RenderLayers.Plotter)
|
if(renderlayer == RenderLayers.Plotter)
|
||||||
{
|
{
|
||||||
|
@ -644,6 +651,9 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
// Clean up things / overlay
|
// Clean up things / overlay
|
||||||
if((renderlayer == RenderLayers.Things) || (renderlayer == RenderLayers.Overlay))
|
if((renderlayer == RenderLayers.Things) || (renderlayer == RenderLayers.Overlay))
|
||||||
{
|
{
|
||||||
|
// Stop rendering
|
||||||
|
graphics.FinishRendering();
|
||||||
|
|
||||||
// Release rendertarget
|
// Release rendertarget
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -1029,64 +1039,6 @@ namespace CodeImp.DoomBuilder.Rendering
|
||||||
|
|
||||||
#region ================== Overlay
|
#region ================== Overlay
|
||||||
|
|
||||||
// This renders a rectangle with given border size and color
|
|
||||||
public void RenderRectangle(RectangleF rect, float bordersize, PixelColor c)
|
|
||||||
{
|
|
||||||
FlatQuad[] quads = new FlatQuad[4];
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Rectangle setup:
|
|
||||||
*
|
|
||||||
* --------------------------
|
|
||||||
* |___________0____________|
|
|
||||||
* | | | |
|
|
||||||
* | | | |
|
|
||||||
* | | | |
|
|
||||||
* | 2| |3 |
|
|
||||||
* | | | |
|
|
||||||
* | | | |
|
|
||||||
* |__|__________________|__|
|
|
||||||
* | 1 |
|
|
||||||
* --------------------------
|
|
||||||
*
|
|
||||||
* Don't you just love ASCII art?
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Calculate positions
|
|
||||||
Vector2D lt = new Vector2D(rect.Left, rect.Top);
|
|
||||||
Vector2D rb = new Vector2D(rect.Right, rect.Bottom);
|
|
||||||
lt = lt.GetTransformed(translatex, translatey, scale, -scale);
|
|
||||||
rb = rb.GetTransformed(translatex, translatey, scale, -scale);
|
|
||||||
float bw = bordersize;
|
|
||||||
|
|
||||||
// Make quads
|
|
||||||
quads[0] = new FlatQuad(PrimitiveType.TriangleList, lt.x, lt.y, rb.x, lt.y + bw);
|
|
||||||
quads[1] = new FlatQuad(PrimitiveType.TriangleList, lt.x, rb.y - bw, rb.x, rb.y);
|
|
||||||
quads[2] = new FlatQuad(PrimitiveType.TriangleList, lt.x, lt.y + bw, lt.x + bw, rb.y);
|
|
||||||
quads[3] = new FlatQuad(PrimitiveType.TriangleList, rb.x - bw, lt.y + bw, rb.x, rb.y - bw);
|
|
||||||
quads[0].SetColors(c.ToInt());
|
|
||||||
quads[1].SetColors(c.ToInt());
|
|
||||||
quads[2].SetColors(c.ToInt());
|
|
||||||
quads[3].SetColors(c.ToInt());
|
|
||||||
|
|
||||||
// Set renderstates for rendering
|
|
||||||
graphics.Device.SetRenderState(RenderState.CullMode, Cull.None);
|
|
||||||
graphics.Device.SetRenderState(RenderState.ZEnable, false);
|
|
||||||
graphics.Device.SetRenderState(RenderState.AlphaBlendEnable, false);
|
|
||||||
graphics.Device.SetRenderState(RenderState.AlphaTestEnable, false);
|
|
||||||
graphics.Device.SetRenderState(RenderState.TextureFactor, -1);
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
graphics.Shaders.Color2D.Begin();
|
|
||||||
graphics.Shaders.Color2D.BeginPass(0);
|
|
||||||
quads[0].Render(graphics);
|
|
||||||
quads[1].Render(graphics);
|
|
||||||
quads[2].Render(graphics);
|
|
||||||
quads[3].Render(graphics);
|
|
||||||
graphics.Shaders.Color2D.EndPass();
|
|
||||||
graphics.Shaders.Color2D.End();
|
|
||||||
}
|
|
||||||
|
|
||||||
// This renders a rectangle with given border size and color
|
// This renders a rectangle with given border size and color
|
||||||
public void RenderRectangle(RectangleF rect, float bordersize, PixelColor c, bool transformrect)
|
public void RenderRectangle(RectangleF rect, float bordersize, PixelColor c, bool transformrect)
|
||||||
{
|
{
|
||||||
|
|
BIN
Source/Resources/White.png
Normal file
BIN
Source/Resources/White.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 137 B |
Loading…
Reference in a new issue