diff --git a/Build/GZBuilder.cfg b/Build/GZBuilder.cfg index 00109f4a238f57c0ade390939309ecee853467a8..7ab8981a108d5e61eb8ff5e26606c61654d44b7f 100644 --- a/Build/GZBuilder.cfg +++ b/Build/GZBuilder.cfg @@ -52,7 +52,7 @@ shortcuts buildermodes_fliplinedefs = 70; buildermodes_joinsectors = 74; buildermodes_removepoint = 8; - buildermodes_brightnessmode = 66; + buildermodes_brightnessmode = 65602; buildermodes_mergesectors = 65610; buildermodes_splitlinedefs = 0; buildermodes_visualmode = 87; diff --git a/Source/Core/Rendering/IRenderer2D.cs b/Source/Core/Rendering/IRenderer2D.cs index e6ba1db03f8a4ffda8636a1c16e85fd695b94447..9d564564f6dc45a90b8faf40d6c210a2d5929bef 100644 --- a/Source/Core/Rendering/IRenderer2D.cs +++ b/Source/Core/Rendering/IRenderer2D.cs @@ -37,6 +37,7 @@ namespace CodeImp.DoomBuilder.Rendering float Scale { get; } int VertexSize { get; } ViewMode ViewMode { get; } + bool FullBrightness { get; set; } //mxd // View methods Vector2D DisplayToMap(Vector2D mousepos); diff --git a/Source/Core/Rendering/Renderer2D.cs b/Source/Core/Rendering/Renderer2D.cs index b3c0b8695ba3ef4c4340002281f8747080fdbe1d..1d846d2ca5b279d3f98c10e38e217194a28d888c 100644 --- a/Source/Core/Rendering/Renderer2D.cs +++ b/Source/Core/Rendering/Renderer2D.cs @@ -88,6 +88,9 @@ namespace CodeImp.DoomBuilder.Rendering // Geometry plotter private Plotter plotter; + //mxd. Options + private bool fullbrightness; + // Vertices to present the textures private VertexBuffer screenverts; private FlatVertex[] backimageverts; @@ -140,7 +143,8 @@ namespace CodeImp.DoomBuilder.Rendering public int VertexSize { get { return vertexsize; } } public ViewMode ViewMode { get { return viewmode; } } public SurfaceManager Surfaces { get { return surfaces; } } - public RectangleF Viewport { get { return viewport; } } //mxd + public RectangleF Viewport { get { return viewport; } } //mxd + public bool FullBrightness { get { return fullbrightness; } set { fullbrightness = value; } } //mxd #endregion @@ -1319,7 +1323,7 @@ namespace CodeImp.DoomBuilder.Rendering // Draw graphics.Shaders.Display2D.Begin(); - graphics.Shaders.Display2D.BeginPass(2); + graphics.Shaders.Display2D.BeginPass(1); //mxd graphics.Device.DrawPrimitives(PrimitiveType.TriangleList, 0, text.NumFaces >> 1); graphics.Device.DrawPrimitives(PrimitiveType.TriangleList, 0, text.NumFaces); graphics.Shaders.Display2D.EndPass(); @@ -1467,25 +1471,23 @@ namespace CodeImp.DoomBuilder.Rendering //mxd public void RenderArrow(Line3D line, PixelColor c) { float scaler = 20f / scale; - //foreach(Line3D l in lines) { + RenderLine(line.v1, line.v2, 0.8f, c, true); float angle = line.GetAngle(); //arrowhead RenderLine(line.v2, new Vector2D(line.v2.x - scaler * (float)Math.Sin(angle - 0.46f), line.v2.y + scaler * (float)Math.Cos(angle - 0.46f)), 0.8f, c, true); RenderLine(line.v2, new Vector2D(line.v2.x - scaler * (float)Math.Sin(angle + 0.46f), line.v2.y + scaler * (float)Math.Cos(angle + 0.46f)), 0.8f, c, true); - //} } //mxd public void PlotArrow(Line3D line, PixelColor c) { float scaler = 16f / scale; - //foreach(Line3D l in lines) { + PlotLine(line.v1, line.v2, c); float angle = line.GetAngle(); //arrowhead PlotLine(line.v2, new Vector2D(line.v2.x - scaler * (float)Math.Sin(angle - 0.46f), line.v2.y + scaler * (float)Math.Cos(angle - 0.46f)), c); PlotLine(line.v2, new Vector2D(line.v2.x - scaler * (float)Math.Sin(angle + 0.46f), line.v2.y + scaler * (float)Math.Cos(angle + 0.46f)), c); - //} } // This renders a line with given color diff --git a/Source/Core/Rendering/SurfaceManager.cs b/Source/Core/Rendering/SurfaceManager.cs index 6827f4e0eb937c01444ad1e2daf34f4c9bf7f288..1d204898cd8455991de97b3653f0543e47d62d75 100644 --- a/Source/Core/Rendering/SurfaceManager.cs +++ b/Source/Core/Rendering/SurfaceManager.cs @@ -653,6 +653,7 @@ namespace CodeImp.DoomBuilder.Rendering { if(!resourcesunloaded) { + int pass = General.Map.Renderer2D.FullBrightness ? 2 : 1; //mxd graphics.Shaders.Display2D.Begin(); foreach(KeyValuePair<ImageData, List<SurfaceEntry>> imgsurfaces in surfaces) { @@ -660,7 +661,7 @@ namespace CodeImp.DoomBuilder.Rendering graphics.Shaders.Display2D.Texture1 = imgsurfaces.Key.Texture; if(!graphics.Shaders.Enabled) graphics.Device.SetTexture(0, imgsurfaces.Key.Texture); - graphics.Shaders.Display2D.BeginPass(1); + graphics.Shaders.Display2D.BeginPass(pass); // Go for all surfaces VertexBuffer lastbuffer = null; diff --git a/Source/Core/Resources/display2d.fx b/Source/Core/Resources/display2d.fx index 551aa7a9169222ca6b25ccb466a10c93e1959819..500aecc9248b1f47fbc5e9ba00feaeac3027d92e 100644 --- a/Source/Core/Resources/display2d.fx +++ b/Source/Core/Resources/display2d.fx @@ -111,12 +111,12 @@ float4 ps_normal(PixelData pd) : COLOR return float4(c.rgb, c.a * rendersettings.w) * pd.color; } -// Pixel shader for text -float4 ps_text(PixelData pd) : COLOR +//mxd. Pixel shader for full bright drawing +float4 ps_fullbright(PixelData pd) : COLOR { // Take this pixel's color float4 c = tex2D(texture1linear, pd.uv); - return float4(c.rgb, c.a * rendersettings.w) * pd.color; + return float4(c.rgb, c.a * rendersettings.w); } // Technique for shader model 2.0 @@ -134,9 +134,9 @@ technique SM20 PixelShader = compile ps_2_0 ps_normal(); } - pass p2 + pass p2 //mxd { VertexShader = compile vs_2_0 vs_transform(); - PixelShader = compile ps_2_0 ps_text(); + PixelShader = compile ps_2_0 ps_fullbright(); } } diff --git a/Source/Plugins/BuilderModes/ClassicModes/BaseClassicMode.cs b/Source/Plugins/BuilderModes/ClassicModes/BaseClassicMode.cs index 5b96aec5c739d9154e07e1447566aa6f8ac96689..7c4d9528b2854c09b1cdbd691ab5406c35b4ad4f 100644 --- a/Source/Plugins/BuilderModes/ClassicModes/BaseClassicMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/BaseClassicMode.cs @@ -226,6 +226,17 @@ namespace CodeImp.DoomBuilder.BuilderModes paintselectpressed = false; } + //mxd + [BeginAction("togglebrightness")] + protected virtual void ToggleBrightness() { + renderer.FullBrightness = !renderer.FullBrightness; + string onoff = renderer.FullBrightness ? "ON" : "OFF"; + General.Interface.DisplayStatus(StatusType.Action, "Full Brightness is now " + onoff + "."); + + // Redraw display to show changes + General.Interface.RedrawDisplay(); + } + #endregion } } diff --git a/Source/Plugins/BuilderModes/Resources/Actions.cfg b/Source/Plugins/BuilderModes/Resources/Actions.cfg index b720e32b35356aa269dd33f3f9ab24f9742d5763..bcf21ab78e0df93e65d6003088553337275e1e84 100644 --- a/Source/Plugins/BuilderModes/Resources/Actions.cfg +++ b/Source/Plugins/BuilderModes/Resources/Actions.cfg @@ -856,7 +856,7 @@ togglegravity togglebrightness { title = "Toggle Full Brightness"; - category = "visual"; + category = "tools"; description = "Toggles the use of sector brightness on and off. When sector brightness is off, the world is displayed fully bright, without lighting effects."; allowkeys = true; allowmouse = true;