public void Draw(CCDrawManager drawManager) { // early out if (VertexBuffer == null || VertexBuffer.Count == 0) { return; } if (IndexBuffer != null) { VertexBuffer.UpdateBuffer(); IndexBuffer.UpdateBuffer(); drawManager.DrawBuffer(VertexBuffer, IndexBuffer, 0, IndexBuffer.Count / 3); } else { drawManager.DrawPrimitives(PrimitiveType, VertexBuffer.Data.Elements, 0, VertexBuffer.Count); } }
protected override void Draw() { if (visibleTileRangeDirty) { UpdateVisibleTileRange(); } if (tileAnimationsDirty) { UpdateTileAnimations(); } base.Draw(); CCDrawManager drawManager = Window.DrawManager; var alphaTest = drawManager.AlphaTestEffect; alphaTest.AlphaFunction = CompareFunction.Greater; alphaTest.ReferenceAlpha = 0; drawManager.PushEffect(alphaTest); foreach (var drawBufferManager in drawBufferManagers) { drawManager.BindTexture(drawBufferManager.TileSetInfo.Texture); foreach (var buffer in drawBufferManager.Buffers) { if (buffer.ShouldDrawBuffer == false || buffer.NumberOfVisibleVertices == 0) { continue; } drawManager.DrawBuffer(buffer.QuadsVertexBuffer, buffer.IndexBuffer, 0, buffer.NumberOfVisiblePrimitives); } } drawManager.PopEffect(); }