mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 15:11:05 +01:00 
			
		
		
		
	Examples: Added missing comments in example_apple_metal. (#3400)
This commit is contained in:
		@@ -4,5 +4,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
This example shows how to integrate Dear ImGui with Metal. It is based on the "cross-platform" game template provided with Xcode as of Xcode 9.
 | 
					This example shows how to integrate Dear ImGui with Metal. It is based on the "cross-platform" game template provided with Xcode as of Xcode 9.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(NB: you may still want to use GLFW or SDL which will also support Windows, Linux along with OSX.)
 | 
					Consider basing your work off the example_glfw_metal/ or example_sdl_metal/ examples. They are better supported and will be portable unlike this one.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@implementation Renderer
 | 
					@implementation Renderer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-(nonnull instancetype)initWithView:(nonnull MTKView *)view;
 | 
					-(nonnull instancetype)initWithView:(nonnull MTKView*)view;
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    self = [super init];
 | 
					    self = [super init];
 | 
				
			||||||
    if(self)
 | 
					    if(self)
 | 
				
			||||||
@@ -23,17 +23,41 @@
 | 
				
			|||||||
        _device = view.device;
 | 
					        _device = view.device;
 | 
				
			||||||
        _commandQueue = [_device newCommandQueue];
 | 
					        _commandQueue = [_device newCommandQueue];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Setup Dear ImGui context
 | 
				
			||||||
 | 
					        // FIXME: This example doesn't have proper cleanup...
 | 
				
			||||||
        IMGUI_CHECKVERSION();
 | 
					        IMGUI_CHECKVERSION();
 | 
				
			||||||
        ImGui::CreateContext();
 | 
					        ImGui::CreateContext();
 | 
				
			||||||
        ImGui::StyleColorsDark();
 | 
					        ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
				
			||||||
 | 
					        //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;     // Enable Keyboard Controls
 | 
				
			||||||
 | 
					        //io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;      // Enable Gamepad Controls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Setup Dear ImGui style
 | 
				
			||||||
 | 
					        ImGui::StyleColorsDark();
 | 
				
			||||||
 | 
					        //ImGui::StyleColorsClassic();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Setup Renderer bindings
 | 
				
			||||||
        ImGui_ImplMetal_Init(_device);
 | 
					        ImGui_ImplMetal_Init(_device);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Load Fonts
 | 
				
			||||||
 | 
					        // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
 | 
				
			||||||
 | 
					        // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
 | 
				
			||||||
 | 
					        // - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
 | 
				
			||||||
 | 
					        // - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
 | 
				
			||||||
 | 
					        // - Read 'docs/FONTS.txt' for more instructions and details.
 | 
				
			||||||
 | 
					        // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
 | 
				
			||||||
 | 
					        //io.Fonts->AddFontDefault();
 | 
				
			||||||
 | 
					        //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
 | 
				
			||||||
 | 
					        //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
 | 
				
			||||||
 | 
					        //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
 | 
				
			||||||
 | 
					        //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
 | 
				
			||||||
 | 
					        //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
 | 
				
			||||||
 | 
					        //IM_ASSERT(font != NULL);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return self;
 | 
					    return self;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- (void)drawInMTKView:(MTKView *)view
 | 
					- (void)drawInMTKView:(MTKView*)view
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    ImGuiIO &io = ImGui::GetIO();
 | 
					    ImGuiIO &io = ImGui::GetIO();
 | 
				
			||||||
    io.DisplaySize.x = view.bounds.size.width;
 | 
					    io.DisplaySize.x = view.bounds.size.width;
 | 
				
			||||||
@@ -50,11 +74,12 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    id<MTLCommandBuffer> commandBuffer = [self.commandQueue commandBuffer];
 | 
					    id<MTLCommandBuffer> commandBuffer = [self.commandQueue commandBuffer];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Our state (make them static = more or less global) as a convenience to keep the example terse.
 | 
				
			||||||
    static bool show_demo_window = true;
 | 
					    static bool show_demo_window = true;
 | 
				
			||||||
    static bool show_another_window = false;
 | 
					    static bool show_another_window = false;
 | 
				
			||||||
    static float clear_color[4] = { 0.28f, 0.36f, 0.5f, 1.0f };
 | 
					    static float clear_color[4] = { 0.28f, 0.36f, 0.5f, 1.0f };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MTLRenderPassDescriptor *renderPassDescriptor = view.currentRenderPassDescriptor;
 | 
					    MTLRenderPassDescriptor* renderPassDescriptor = view.currentRenderPassDescriptor;
 | 
				
			||||||
    if (renderPassDescriptor != nil)
 | 
					    if (renderPassDescriptor != nil)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColorMake(clear_color[0], clear_color[1], clear_color[2], clear_color[3]);
 | 
					        renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColorMake(clear_color[0], clear_color[1], clear_color[2], clear_color[3]);
 | 
				
			||||||
@@ -110,7 +135,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // Rendering
 | 
					        // Rendering
 | 
				
			||||||
        ImGui::Render();
 | 
					        ImGui::Render();
 | 
				
			||||||
        ImDrawData *drawData = ImGui::GetDrawData();
 | 
					        ImDrawData* drawData = ImGui::GetDrawData();
 | 
				
			||||||
        ImGui_ImplMetal_RenderDrawData(drawData, commandBuffer, renderEncoder);
 | 
					        ImGui_ImplMetal_RenderDrawData(drawData, commandBuffer, renderEncoder);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [renderEncoder popDebugGroup];
 | 
					        [renderEncoder popDebugGroup];
 | 
				
			||||||
@@ -122,7 +147,7 @@
 | 
				
			|||||||
    [commandBuffer commit];
 | 
					    [commandBuffer commit];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- (void)mtkView:(MTKView *)view drawableSizeWillChange:(CGSize)size
 | 
					- (void)mtkView:(MTKView*)view drawableSizeWillChange:(CGSize)size
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,7 +45,7 @@
 | 
				
			|||||||
	ImGui_ImplOSX_NewFrame(self);
 | 
						ImGui_ImplOSX_NewFrame(self);
 | 
				
			||||||
    ImGui::NewFrame();
 | 
					    ImGui::NewFrame();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Global data for the demo
 | 
					    // Our state (make them static = more or less global) as a convenience to keep the example terse.
 | 
				
			||||||
    static bool show_demo_window = true;
 | 
					    static bool show_demo_window = true;
 | 
				
			||||||
    static bool show_another_window = false;
 | 
					    static bool show_another_window = false;
 | 
				
			||||||
    static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
 | 
					    static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
 | 
				
			||||||
@@ -243,10 +243,12 @@
 | 
				
			|||||||
        NSLog(@"No OpenGL Context!");
 | 
					        NSLog(@"No OpenGL Context!");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Setup Dear ImGui context
 | 
					    // Setup Dear ImGui context
 | 
				
			||||||
 | 
					    // FIXME: This example doesn't have proper cleanup...
 | 
				
			||||||
    IMGUI_CHECKVERSION();
 | 
					    IMGUI_CHECKVERSION();
 | 
				
			||||||
    ImGui::CreateContext();
 | 
					    ImGui::CreateContext();
 | 
				
			||||||
    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
					    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
				
			||||||
    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;     // Enable Keyboard Controls
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;     // Enable Keyboard Controls
 | 
				
			||||||
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;      // Enable Gamepad Controls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Setup Dear ImGui style
 | 
					    // Setup Dear ImGui style
 | 
				
			||||||
    ImGui::StyleColorsDark();
 | 
					    ImGui::StyleColorsDark();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user