Branimir Karadžić 7 年 前
コミット
1f9c077236
1 ファイル変更97 行追加23 行削除
  1. 97 23
      src/renderer_mtl.h

+ 97 - 23
src/renderer_mtl.h

@@ -65,23 +65,45 @@ namespace bgfx { namespace mtl
 		typedef void (*mtlCallback)(void* userData);
 
 	MTL_CLASS(BlitCommandEncoder)
-		void copyFromTexture(id<MTLTexture> _sourceTexture, NSUInteger _sourceSlice, NSUInteger _sourceLevel, MTLOrigin _sourceOrigin, MTLSize _sourceSize,
-							id<MTLTexture> _destinationTexture, NSUInteger _destinationSlice, NSUInteger _destinationLevel, MTLOrigin _destinationOrigin)
+		void copyFromTexture(
+			  id<MTLTexture> _sourceTexture
+			, NSUInteger _sourceSlice
+			, NSUInteger _sourceLevel
+			, MTLOrigin _sourceOrigin
+			, MTLSize _sourceSize
+			, id<MTLTexture> _destinationTexture
+			, NSUInteger _destinationSlice
+			, NSUInteger _destinationLevel
+			, MTLOrigin _destinationOrigin
+			)
 		{
 			[m_obj copyFromTexture:_sourceTexture sourceSlice:_sourceSlice sourceLevel:_sourceLevel sourceOrigin:_sourceOrigin sourceSize:_sourceSize
 						 toTexture:_destinationTexture destinationSlice:_destinationSlice destinationLevel:_destinationLevel destinationOrigin:_destinationOrigin];
 		}
 
-		void copyFromBuffer(id<MTLBuffer> _sourceBuffer, NSUInteger _sourceOffset, id<MTLBuffer> _destinationBuffer,
-							NSUInteger _destinationOffset, NSUInteger _size)
+		void copyFromBuffer(
+			  id<MTLBuffer> _sourceBuffer
+			, NSUInteger _sourceOffset
+			, id<MTLBuffer> _destinationBuffer
+			, NSUInteger _destinationOffset
+			, NSUInteger _size
+			)
 		{
 			[m_obj copyFromBuffer:_sourceBuffer	sourceOffset:_sourceOffset toBuffer:_destinationBuffer
 				destinationOffset:_destinationOffset size:_size];
 		}
 
-		void copyFromBuffer(id<MTLBuffer> _sourceBuffer, NSUInteger _sourceOffset, NSUInteger _sourceBytesPerRow,
-							NSUInteger _sourceBytesPerImage, MTLSize _sourceSize, id<MTLTexture> _destinationTexture,
-							NSUInteger _destinationSlice, NSUInteger _destinationLevel, MTLOrigin _destinationOrigin)
+		void copyFromBuffer(
+			  id<MTLBuffer> _sourceBuffer
+			, NSUInteger _sourceOffset
+			, NSUInteger _sourceBytesPerRow
+			, NSUInteger _sourceBytesPerImage
+			, MTLSize _sourceSize
+			, id<MTLTexture> _destinationTexture
+			, NSUInteger _destinationSlice
+			, NSUInteger _destinationLevel
+			, MTLOrigin _destinationOrigin
+			)
 		{
 			[m_obj copyFromBuffer:_sourceBuffer sourceOffset:_sourceOffset sourceBytesPerRow:_sourceBytesPerRow
 			  sourceBytesPerImage:_sourceBytesPerImage sourceSize:_sourceSize toTexture:_destinationTexture
@@ -120,7 +142,7 @@ namespace bgfx { namespace mtl
 
 	MTL_CLASS(CommandBuffer)
 		// Creating Command Encoders
-		id<MTLRenderCommandEncoder> renderCommandEncoderWithDescriptor( MTLRenderPassDescriptor* _renderPassDescriptor){
+		id<MTLRenderCommandEncoder> renderCommandEncoderWithDescriptor(MTLRenderPassDescriptor* _renderPassDescriptor){
 			return [m_obj renderCommandEncoderWithDescriptor:_renderPassDescriptor];
 		}
 
@@ -281,7 +303,11 @@ namespace bgfx { namespace mtl
 			return state;
 		}
 
-		id <MTLRenderPipelineState> newRenderPipelineStateWithDescriptor(MTLRenderPipelineDescriptor* _descriptor, MTLPipelineOption _options, MTLRenderPipelineReflection** _reflection)
+		id <MTLRenderPipelineState> newRenderPipelineStateWithDescriptor(
+			  MTLRenderPipelineDescriptor* _descriptor
+			, MTLPipelineOption _options
+			, MTLRenderPipelineReflection** _reflection
+			)
 		{
 			NSError* error;
 			id <MTLRenderPipelineState> state = [m_obj newRenderPipelineStateWithDescriptor:_descriptor options:_options reflection:_reflection error:&error];
@@ -325,7 +351,10 @@ namespace bgfx { namespace mtl
 	MTL_CLASS_END
 
 	MTL_CLASS(Function)
-		NSArray* vertexAttributes() { return m_obj.vertexAttributes; }
+		NSArray* vertexAttributes()
+		{
+			return m_obj.vertexAttributes;
+		}
 
 		void setLabel(const char* _label)
 		{
@@ -337,7 +366,10 @@ namespace bgfx { namespace mtl
 	MTL_CLASS_END
 
 	MTL_CLASS(Library)
-		id <MTLFunction> newFunctionWithName(const char* _functionName) { return [m_obj newFunctionWithName:@(_functionName)]; }
+		id <MTLFunction> newFunctionWithName(const char* _functionName)
+		{
+			return [m_obj newFunctionWithName:@(_functionName)];
+		}
 	MTL_CLASS_END
 
 	MTL_CLASS(RenderCommandEncoder)
@@ -431,12 +463,24 @@ namespace bgfx { namespace mtl
 
 		//Drawing Geometric Primitives
 		//NOTE: not exposing functions without instanceCount, it seems they are just wrappers
-		void drawIndexedPrimitives(MTLPrimitiveType _primitiveType, NSUInteger _indexCount, MTLIndexType _indexType, id<MTLBuffer> _indexBuffer, NSUInteger _indexBufferOffset, NSUInteger _instanceCount)
+		void drawIndexedPrimitives(
+			  MTLPrimitiveType _primitiveType
+			, NSUInteger _indexCount
+			, MTLIndexType _indexType
+			, id<MTLBuffer> _indexBuffer
+			, NSUInteger _indexBufferOffset
+			, NSUInteger _instanceCount
+			)
 		{
 			[m_obj drawIndexedPrimitives:_primitiveType indexCount:_indexCount indexType:_indexType indexBuffer:_indexBuffer indexBufferOffset:_indexBufferOffset instanceCount:_instanceCount];
 		}
 
-		void drawPrimitives(MTLPrimitiveType _primitiveType, NSUInteger _vertexStart, NSUInteger _vertexCount, NSUInteger _instanceCount)
+		void drawPrimitives(
+			  MTLPrimitiveType _primitiveType
+			, NSUInteger _vertexStart
+			, NSUInteger _vertexCount
+			, NSUInteger _instanceCount
+			)
 		{
 			[m_obj drawPrimitives:_primitiveType vertexStart:_vertexStart vertexCount:_vertexCount instanceCount:_instanceCount];
 		}
@@ -603,10 +647,10 @@ namespace bgfx { namespace mtl
 		return [_str UTF8String];
 	}
 
-#define MTL_RELEASE(_obj) \
+#define MTL_RELEASE(_obj)        \
 			BX_MACRO_BLOCK_BEGIN \
-				[_obj release]; \
-				_obj = nil; \
+				[_obj release];  \
+				_obj = nil;      \
 			BX_MACRO_BLOCK_END
 
 	// end of c++ wrapper
@@ -670,7 +714,9 @@ namespace bgfx { namespace mtl
 			, m_bufferIndex(0)
 		{
 			for (uint32_t ii = 0; ii < MTL_MAX_FRAMES_IN_FLIGHT; ++ii)
+			{
 				m_buffers[ii] = NULL;
+			}
 		}
 
 		void create(uint32_t _size, void* _data, uint16_t _flags, uint16_t _stride = 0, bool _vertex = false);
@@ -682,6 +728,7 @@ namespace bgfx { namespace mtl
 			{
 				MTL_RELEASE(m_buffers[ii]);
 			}
+
 			m_dynamic = false;
 		}
 
@@ -748,9 +795,15 @@ namespace bgfx { namespace mtl
 		void create(const ShaderMtl* _vsh, const ShaderMtl* _fsh);
 		void destroy();
 
-		RenderPipelineState getRenderPipelineState(uint64_t _state, uint32_t _rgba, FrameBufferHandle _fbHandle, VertexDeclHandle _declHandle,  uint16_t _numInstanceData);
+		RenderPipelineState getRenderPipelineState(
+			  uint64_t _state
+			, uint32_t _rgba
+			, FrameBufferHandle _fbHandle
+			, VertexDeclHandle _declHandle
+			, uint16_t _numInstanceData
+			);
 
-		StateCacheT<RenderPipelineState>	m_renderPipelineStateCache;
+		StateCacheT<RenderPipelineState> m_renderPipelineStateCache;
 
 		uint8_t  m_used[Attrib::Count+1]; // dense
 		uint32_t m_attributes[Attrib::Count]; // sparse
@@ -808,8 +861,21 @@ namespace bgfx { namespace mtl
 			MTL_RELEASE(m_ptr);
 			MTL_RELEASE(m_ptrStencil);
 		}
-		void update(uint8_t _side, uint8_t _mip, const Rect& _rect, uint16_t _z, uint16_t _depth, uint16_t _pitch, const Memory* _mem);
-		void commit(uint8_t _stage, bool _vertex, bool _fragment, uint32_t _flags = BGFX_TEXTURE_INTERNAL_DEFAULT_SAMPLER);
+		void update(
+			  uint8_t _side
+			, uint8_t _mip
+			, const Rect& _rect
+			, uint16_t _z
+			, uint16_t _depth
+			, uint16_t _pitch
+			, const Memory* _mem
+			);
+		void commit(
+			  uint8_t _stage
+			, bool _vertex
+			, bool _fragment
+			, uint32_t _flags = BGFX_TEXTURE_INTERNAL_DEFAULT_SAMPLER
+			);
 
 		Texture m_ptr;
 		Texture m_ptrMSAA;
@@ -836,7 +902,13 @@ namespace bgfx { namespace mtl
 		}
 
 		void create(uint8_t _num, const Attachment* _attachment);
-		void create(uint16_t _denseIdx, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat);
+		void create(
+			  uint16_t _denseIdx
+			, void* _nwh
+			, uint32_t _width
+			, uint32_t _height
+			, TextureFormat::Enum _depthFormat
+			);
 		void postReset();
 		uint16_t destroy();
 
@@ -854,7 +926,9 @@ namespace bgfx { namespace mtl
 
 	struct CommandQueueMtl
 	{
-		CommandQueueMtl() : m_releaseWriteIndex(0), m_releaseReadIndex(0)
+		CommandQueueMtl()
+			: m_releaseWriteIndex(0)
+			, m_releaseReadIndex(0)
 		{
 		}
 
@@ -880,7 +954,7 @@ namespace bgfx { namespace mtl
 	struct TimerQueryMtl
 	{
 		TimerQueryMtl()
-		: m_control(4)
+			: m_control(4)
 		{
 		}