Branimir Karadžić 9 سال پیش
والد
کامیت
be9f93473d

+ 3 - 3
examples/09-hdr/hdr.cpp

@@ -230,9 +230,9 @@ class ExampleHDR : public entry::AppI
 		// Imgui.
 		imguiCreate();
 
-		const bgfx::RendererType::Enum renderer = bgfx::getRendererType();
-		s_texelHalf = bgfx::RendererType::Direct3D9 == renderer ? 0.5f : 0.0f;
-		s_originBottomLeft = bgfx::RendererType::OpenGL == renderer || bgfx::RendererType::OpenGLES == renderer;
+		const bgfx::Caps* caps = bgfx::getCaps();
+		s_texelHalf        = bgfx::RendererType::Direct3D9 == caps->rendererType ? 0.5f : 0.0f;
+		s_originBottomLeft = caps->originBottomLeft;
 
 		m_oldWidth  = 0;
 		m_oldHeight = 0;

+ 4 - 6
examples/21-deferred/deferred.cpp

@@ -16,7 +16,6 @@
 #define RENDER_PASS_DEBUG_GBUFFER_ID  4
 
 static float s_texelHalf = 0.0f;
-static bool s_originBottomLeft = false;
 
 struct PosNormalTangentTexcoordVertex
 {
@@ -218,7 +217,7 @@ class ExampleDeferred : public entry::AppI
 	void init(int _argc, char** _argv) BX_OVERRIDE
 	{
 		Args args(_argc, _argv);
-		
+
 		m_width  = 1280;
 		m_height = 720;
 		m_debug  = BGFX_DEBUG_TEXT;
@@ -311,7 +310,6 @@ class ExampleDeferred : public entry::AppI
 		m_timeOffset = bx::getHPCounter();
 		const bgfx::RendererType::Enum renderer = bgfx::getRendererType();
 		s_texelHalf = bgfx::RendererType::Direct3D9 == renderer ? 0.5f : 0.0f;
-		s_originBottomLeft = bgfx::RendererType::OpenGL == renderer || bgfx::RendererType::OpenGLES == renderer;
 
 		// Get renderer capabilities info.
 		m_caps = bgfx::getCaps();
@@ -501,7 +499,7 @@ class ExampleDeferred : public entry::AppI
 					bgfx::setViewFrameBuffer(RENDER_PASS_LIGHT_ID, m_lightBuffer);
 
 					float proj[16];
-					bx::mtxProj(proj, 60.0f, float(m_width)/float(m_height), 0.1f, 100.0f, s_originBottomLeft);
+					bx::mtxProj(proj, 60.0f, float(m_width)/float(m_height), 0.1f, 100.0f, m_caps->homogeneousDepth);
 
 					bgfx::setViewFrameBuffer(RENDER_PASS_GEOMETRY_ID, m_gbuffer);
 					bgfx::setViewTransform(RENDER_PASS_GEOMETRY_ID, view, proj);
@@ -695,7 +693,7 @@ class ExampleDeferred : public entry::AppI
 								| BGFX_STATE_ALPHA_WRITE
 								| BGFX_STATE_BLEND_ADD
 								);
-						screenSpaceQuad( (float)m_width, (float)m_height, s_texelHalf, s_originBottomLeft);
+						screenSpaceQuad( (float)m_width, (float)m_height, s_texelHalf, m_caps->originBottomLeft);
 						bgfx::submit(RENDER_PASS_LIGHT_ID, m_lightProgram);
 					}
 				}
@@ -707,7 +705,7 @@ class ExampleDeferred : public entry::AppI
 						| BGFX_STATE_RGB_WRITE
 						| BGFX_STATE_ALPHA_WRITE
 						);
-				screenSpaceQuad( (float)m_width, (float)m_height, s_texelHalf, s_originBottomLeft);
+				screenSpaceQuad( (float)m_width, (float)m_height, s_texelHalf, m_caps->originBottomLeft);
 				bgfx::submit(RENDER_PASS_COMBINE_ID, m_combineProgram);
 
 				if (m_showGBuffer)

+ 1 - 1
examples/21-deferred/fs_deferred_light.sc

@@ -72,7 +72,7 @@ vec3 clipToWorld(mat4 _invViewProj, vec3 _clipPos)
 void main()
 {
 	vec3  normal      = decodeNormalUint(texture2D(s_normal, v_texcoord0).xyz);
-	float deviceDepth = texture2D(s_depth,  v_texcoord0).x;
+	float deviceDepth = texture2D(s_depth, v_texcoord0).x;
 	float depth       = toClipSpaceDepth(deviceDepth);
 
 	vec3 clip = vec3(v_texcoord0 * 2.0 - 1.0, depth);

+ 1 - 6
examples/27-terrain/terrain.cpp

@@ -12,8 +12,6 @@
 #include <bx/debug.h>
 #include <bx/fpumath.h>
 
-static float s_texelHalf = 0.0f;
-static bool s_originBottomLeft = false;
 static uint32_t s_terrainSize = 256;
 
 struct PosTexCoord0Vertex
@@ -94,9 +92,6 @@ class ExampleTerrain : public entry::AppI
 		imguiCreate();
 
 		m_timeOffset = bx::getHPCounter();
-		const bgfx::RendererType::Enum renderer = bgfx::getRendererType();
-		s_texelHalf = bgfx::RendererType::Direct3D9 == renderer ? 0.5f : 0.0f;
-		s_originBottomLeft = bgfx::RendererType::OpenGL == renderer || bgfx::RendererType::OpenGLES == renderer;
 
 		m_vbh.idx = bgfx::invalidHandle;
 		m_ibh.idx = bgfx::invalidHandle;
@@ -463,7 +458,7 @@ class ExampleTerrain : public entry::AppI
 			bgfx::setViewRect(0, 0, 0, m_width, m_height);
 
 			cameraGetViewMtx(m_viewMtx);
-			bx::mtxProj(m_projMtx, 60.0f, float(m_width) / float(m_height), 0.1f, 2000.0f, s_originBottomLeft);
+			bx::mtxProj(m_projMtx, 60.0f, float(m_width) / float(m_height), 0.1f, 2000.0f);
 
 			bgfx::setViewTransform(0, m_viewMtx, m_projMtx);
 			bgfx::setTransform(m_terrain.m_transform);

+ 6 - 6
src/renderer_gl.cpp

@@ -1818,12 +1818,12 @@ namespace bgfx { namespace gl
 						);
 			}
 
-			if (s_extension[Extension::ARB_clip_control].m_supported)
-			{
-				GL_CHECK(glClipControl(GL_LOWER_LEFT, GL_ZERO_TO_ONE) );
-				g_caps.originBottomLeft = true;
-			}
-			else
+//			if (s_extension[Extension::ARB_clip_control].m_supported)
+//			{
+//				GL_CHECK(glClipControl(GL_LOWER_LEFT, GL_ZERO_TO_ONE) );
+//				g_caps.originBottomLeft = true;
+//			}
+//			else
 			{
 				g_caps.homogeneousDepth = true;
 				g_caps.originBottomLeft = true;