Skip to content

Commit

Permalink
Examples: Metal: Removed unnecessary loop. Fixed OSX Clang warning in…
Browse files Browse the repository at this point in the history
… imstb_truetype. (#1929, #1873)
  • Loading branch information
ocornut committed Feb 11, 2019
1 parent 4b41d3b commit ef79406
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 14 deletions.
22 changes: 9 additions & 13 deletions examples/imgui_impl_metal.mm
Original file line number Diff line number Diff line change
Expand Up @@ -440,17 +440,10 @@ - (void)renderDrawData:(ImDrawData *)drawData

[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];
Expand Down Expand Up @@ -484,10 +477,13 @@ - (void)renderDrawData:(ImDrawData *)drawData
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];


Expand Down
2 changes: 1 addition & 1 deletion imstb_truetype.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 /
Expand Down

0 comments on commit ef79406

Please sign in to comment.