Parcourir la source

Metal: Occlusion query WIP.

Branimir Karadžić il y a 10 ans
Parent
commit
653bbea439
2 fichiers modifiés avec 477 ajouts et 458 suppressions
  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
 		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
 } /* namespace metal */ } // namespace bgfx
 
 
 #endif // BGFX_CONFIG_RENDERER_METAL
 #endif // BGFX_CONFIG_RENDERER_METAL

Fichier diff supprimé car celui-ci est trop grand
+ 454 - 458
src/renderer_mtl.mm


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff