@@ -416,9 +416,9 @@ @implementation CCRenderCommandDrawMetal
416416 MTLPrimitiveTypeLine ,
417417};
418418
419- -(instancetype )initWithMode : (CCRenderCommandDrawMode)mode renderState : (CCRenderState *)renderState first : (NSUInteger )first count : (size_t )count globalSortOrder : (NSInteger )globalSortOrder
419+ -(instancetype )initWithMode : (CCRenderCommandDrawMode)mode renderState : (CCRenderState *)renderState firstIndex : (NSUInteger )firstIndex vertexPage : ( NSUInteger ) vertexPage count : (size_t )count globalSortOrder : (NSInteger )globalSortOrder ;
420420{
421- if ((self = [super initWithMode: mode renderState: renderState first: first count: count globalSortOrder: globalSortOrder])){
421+ if ((self = [super initWithMode: mode renderState: renderState firstIndex: firstIndex vertexPage: vertexPage count: count globalSortOrder: globalSortOrder])){
422422 // The renderer may have copied the render state, use the ivar.
423423 CCRenderStateMetalPrepare ((CCRenderStateMetal *)_renderState);
424424 }
@@ -434,11 +434,11 @@ -(void)invokeOnRenderer:(CCRenderer *)renderer
434434 id <MTLBuffer > indexBuffer = ((CCGraphicsBufferMetal *)buffers->_indexBuffer )->_buffer ;
435435
436436 CCMTL_DEBUG_PUSH_GROUP_MARKER (renderEncoder, @" CCRendererCommandDraw: Invoke" );
437- CCRendererBindBuffers (renderer, YES );
437+ CCRendererBindBuffers (renderer, YES , _vertexPage );
438438 CCRenderStateMetalTransition ((CCRenderStateMetal *)_renderState, renderer, (CCRenderStateMetal *)renderer->_renderState );
439439 renderer->_renderState = _renderState;
440440
441- [renderEncoder drawIndexedPrimitives: MetalDrawModes[_mode] indexCount: _count indexType: MTLIndexTypeUInt16 indexBuffer: indexBuffer indexBufferOffset: 2 *_first ];
441+ [renderEncoder drawIndexedPrimitives: MetalDrawModes[_mode] indexCount: _count indexType: MTLIndexTypeUInt16 indexBuffer: indexBuffer indexBufferOffset: 2 *_firstIndex ];
442442 CCMTL_DEBUG_POP_GROUP_MARKER (renderEncoder);
443443
444444 CC_INCREMENT_GL_DRAWS (1 );
0 commit comments