diff --git a/examples/imgui_impl_metal.mm b/examples/imgui_impl_metal.mm
index c837342..6ffe27e 100644
--- a/examples/imgui_impl_metal.mm
+++ b/examples/imgui_impl_metal.mm
@@ -440,17 +440,10 @@
 
     [commandEncoder setVertexBytes:&ortho_projection length:sizeof(ortho_projection) atIndex:1];
 
-    size_t vertexBufferLength = 0;
-    size_t indexBufferLength = 0;
-    for (int n = 0; n < drawData->CmdListsCount; n++)
-    {
-        const ImDrawList* cmd_list = drawData->CmdLists[n];
-        vertexBufferLength += cmd_list->VtxBuffer.Size * sizeof(ImDrawVert);
-        indexBufferLength += cmd_list->IdxBuffer.Size * sizeof(ImDrawIdx);
-    }
-
-    MetalBuffer *vertexBuffer = [self dequeueReusableBufferOfLength:vertexBufferLength device:commandBuffer.device];
-    MetalBuffer *indexBuffer = [self dequeueReusableBufferOfLength:indexBufferLength device:commandBuffer.device];
+    size_t vertexBufferLength = drawData->TotalVtxCount * sizeof(ImDrawVert);
+    size_t indexBufferLength = drawData->TotalIdxCount * sizeof(ImDrawIdx);
+    MetalBuffer* vertexBuffer = [self dequeueReusableBufferOfLength:vertexBufferLength device:commandBuffer.device];
+    MetalBuffer* indexBuffer = [self dequeueReusableBufferOfLength:indexBufferLength device:commandBuffer.device];
 
     id<MTLRenderPipelineState> renderPipelineState = [self renderPipelineStateForFrameAndDevice:commandBuffer.device];
     [commandEncoder setRenderPipelineState:renderPipelineState];
@@ -484,10 +477,13 @@
                 if (clip_rect.x < fb_width && clip_rect.y < fb_height && clip_rect.z >= 0.0f && clip_rect.w >= 0.0f)
                 {
                     // Apply scissor/clipping rectangle
-                    MTLScissorRect scissorRect = { .x = NSUInteger(clip_rect.x),
+                    MTLScissorRect scissorRect =
+                    {
+                        .x = NSUInteger(clip_rect.x),
                         .y = NSUInteger(clip_rect.y),
                         .width = NSUInteger(clip_rect.z - clip_rect.x),
-                        .height = NSUInteger(clip_rect.w - clip_rect.y) };
+                        .height = NSUInteger(clip_rect.w - clip_rect.y)
+                    };
                     [commandEncoder setScissorRect:scissorRect];
 
 
diff --git a/imstb_truetype.h b/imstb_truetype.h
index a76a6c2..9563132 100644
--- a/imstb_truetype.h
+++ b/imstb_truetype.h
@@ -253,7 +253,7 @@
 //   Documentation & header file        520 LOC  \___ 660 LOC documentation
 //   Sample code                        140 LOC  /
 //   Truetype parsing                   620 LOC  ---- 620 LOC TrueType
-//   Software rasterization             240 LOC  \                           
+//   Software rasterization             240 LOC  \
 //   Curve tessellation                 120 LOC   \__ 550 LOC Bitmap creation
 //   Bitmap management                  100 LOC   /
 //   Baked bitmap interface              70 LOC  /
