From 5ccc225fa85a99db4bcb96a1dd37df44a321fbf0 Mon Sep 17 00:00:00 2001
From: Magnus Norddahl <dpjudas@users.noreply.github.com>
Date: Sat, 17 Aug 2019 05:21:28 +0200
Subject: [PATCH] - fix light pass

---
 Source/Core/Rendering/RenderDevice.cs | 2 +-
 Source/Core/Rendering/Renderer3D.cs   | 4 ++--
 Source/Native/RenderDevice.cpp        | 3 ++-
 Source/Native/RenderDevice.h          | 2 +-
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/Source/Core/Rendering/RenderDevice.cs b/Source/Core/Rendering/RenderDevice.cs
index cbd63d406..d3cc1243d 100755
--- a/Source/Core/Rendering/RenderDevice.cs
+++ b/Source/Core/Rendering/RenderDevice.cs
@@ -566,7 +566,7 @@ namespace CodeImp.DoomBuilder.Rendering
 
     public enum VertexFormat : int { Flat, World }
     public enum Cull : int { None, Clockwise }
-    public enum Blend : int { InverseSourceAlpha, SourceAlpha, One, BlendFactor }
+    public enum Blend : int { InverseSourceAlpha, SourceAlpha, One }
     public enum BlendOperation : int { Add, ReverseSubtract }
     public enum FillMode : int { Solid, Wireframe }
     public enum TextureAddress : int { Wrap, Clamp }
diff --git a/Source/Core/Rendering/Renderer3D.cs b/Source/Core/Rendering/Renderer3D.cs
index 15ce6fffd..9156d72fc 100755
--- a/Source/Core/Rendering/Renderer3D.cs
+++ b/Source/Core/Rendering/Renderer3D.cs
@@ -1464,7 +1464,7 @@ namespace CodeImp.DoomBuilder.Rendering
             VisualSector sector = null;
 
             graphics.SetSourceBlend(Blend.One);
-            graphics.SetDestinationBlend(Blend.BlendFactor);
+            graphics.SetDestinationBlend(Blend.One);
 
             //
             RenderLightsFromGeometryList(geometrytolit, lights, sector, true);
@@ -1488,7 +1488,7 @@ namespace CodeImp.DoomBuilder.Rendering
             VisualSector sector = null;
 
             graphics.SetSourceBlend(Blend.One);
-            graphics.SetDestinationBlend(Blend.BlendFactor);
+            graphics.SetDestinationBlend(Blend.One);
 
             foreach (KeyValuePair<ImageData, List<VisualGeometry>> group in geometrytolit)
             {
diff --git a/Source/Native/RenderDevice.cpp b/Source/Native/RenderDevice.cpp
index c2009ae2e..b8c905d01 100644
--- a/Source/Native/RenderDevice.cpp
+++ b/Source/Native/RenderDevice.cpp
@@ -417,7 +417,7 @@ void RenderDevice::ApplyBlendState()
 	if (mAlphaBlend)
 	{
 		static const GLenum blendOp2GL[] = { GL_FUNC_ADD, GL_FUNC_REVERSE_SUBTRACT };
-		static const GLenum blendFunc2GL[] = { GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE, GL_CONSTANT_COLOR };
+		static const GLenum blendFunc2GL[] = { GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE };
 
 		glEnable(GL_BLEND);
 		glBlendEquation(blendOp2GL[(int)mBlendOperation]);
@@ -434,6 +434,7 @@ void RenderDevice::ApplyDepthState()
 	if (mDepthTest)
 	{
 		glEnable(GL_DEPTH_TEST);
+		glDepthFunc(GL_LEQUAL);
 		glDepthMask(mDepthWrite ? GL_TRUE : GL_FALSE);
 	}
 	else
diff --git a/Source/Native/RenderDevice.h b/Source/Native/RenderDevice.h
index 524155401..8e028c3b4 100644
--- a/Source/Native/RenderDevice.h
+++ b/Source/Native/RenderDevice.h
@@ -11,7 +11,7 @@ enum class CubeMapFace;
 enum class VertexFormat;
 
 enum class Cull : int { None, Clockwise };
-enum class Blend : int { InverseSourceAlpha, SourceAlpha, One, BlendFactor };
+enum class Blend : int { InverseSourceAlpha, SourceAlpha, One };
 enum class BlendOperation : int { Add, ReverseSubtract };
 enum class FillMode : int { Solid, Wireframe };
 enum class TextureAddress : int { Wrap, Clamp };
-- 
GitLab