Browse Source

Metal: Occlusion query WIP.

Branimir Karadžić 10 years ago
parent
commit
653bbea439
2 changed files with 477 additions and 458 deletions
  1. 23 0
      src/renderer_mtl.h
  2. 454 458
      src/renderer_mtl.mm

+ 23 - 0
src/renderer_mtl.h

@@ -712,6 +712,29 @@ namespace bgfx { namespace mtl
 		uint8_t m_num; // number of color handles
 	};
 
+	struct OcclusionQueryMTL
+	{
+		OcclusionQueryMTL()
+			: m_control(BX_COUNTOF(m_query) )
+		{
+		}
+
+		void postReset();
+		void preReset();
+		void begin(RenderCommandEncoder& _rce, Frame* _render, OcclusionQueryHandle _handle);
+		void end(RenderCommandEncoder& _rce);
+		void resolve(Frame* _render, bool _wait = false);
+
+		struct Query
+		{
+			OcclusionQueryHandle m_handle;
+		};
+
+		Buffer m_buffer;
+		Query m_query[BGFX_CONFIG_MAX_OCCUSION_QUERIES];
+		bx::RingBufferControl m_control;
+	};
+
 } /* namespace metal */ } // namespace bgfx
 
 #endif // BGFX_CONFIG_RENDERER_METAL

File diff suppressed because it is too large
+ 454 - 458
src/renderer_mtl.mm


Some files were not shown because too many files changed in this diff