{"id":22362685,"url":"https://github.com/h12m54am/blank-opengl-window","last_synced_at":"2026-05-07T17:41:23.603Z","repository":{"id":265590672,"uuid":"896276822","full_name":"H12M54AM/blank-opengl-window","owner":"H12M54AM","description":"Making a simple GUI window that I know works on MacOS ARM as there are some things that don't","archived":false,"fork":false,"pushed_at":"2024-12-16T13:10:07.000Z","size":2218,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T15:17:02.571Z","etag":null,"topics":["cplusplus","macos","macos-app","opengl","template-project"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/H12M54AM.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-30T00:01:37.000Z","updated_at":"2024-12-16T13:10:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b9f95e1-9d0d-4867-876b-a6cd6ee7d339","html_url":"https://github.com/H12M54AM/blank-opengl-window","commit_stats":null,"previous_names":["h12m54am/blank-opengl-window"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/H12M54AM%2Fblank-opengl-window","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/H12M54AM%2Fblank-opengl-window/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/H12M54AM%2Fblank-opengl-window/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/H12M54AM%2Fblank-opengl-window/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/H12M54AM","download_url":"https://codeload.github.com/H12M54AM/blank-opengl-window/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/H12M54AM%2Fblank-opengl-window/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259038140,"owners_count":22796565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus","macos","macos-app","opengl","template-project"],"created_at":"2024-12-04T17:10:20.253Z","updated_at":"2026-05-07T17:41:23.553Z","avatar_url":"https://github.com/H12M54AM.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blank Window\n\n## Main Goal\nTo create a \"usable\" .app window for the ARM architecture in MacOS, for MacOS. \n\n## Why make this project instead of using Swift in Xcode?\nIt is not commonly known to use this because theres swift. But Xcode is cringe. And way too big. It's just not good and using it requires a segmented mindset and physical environment becuase it requires so much storage and RAM. \n\nYou basically need another MacOS machine for programming on Xcode using swift just to program freely without intefereing with everything else a computer is used for, including the various hobbies or interests that requires physical hardware like; Video Editing, Game Developement (Unreal Engine, Unity, etc), Music (instrumental sounds) and more. \n\n## Who is this project best for?\n*This is not the requirement. Rather its my recommendation becuase I've tested this project so the following is where you can receive the best results.* \n- OS: MacOS Seqouia 15.x\n- RAM: 8GB\n- Storage: Doesn't Matter\n- Architecture: Apple Silicon (ARM)\n- Chip Generation: M1\n\n## Getting Started - How to get this project?\nYou can use any one of these commands. HTTPS is the simplier command that doesn't reqiure a private and public key. SSH does involve keys. This project is not a tutorial in using ssh. \n### Download Project\nIf you want to obtain this project without contributing, click \"Download Zip\" like in the image\n![download button](./documentation/assets/download.png \"Download now!\")\n\n\n\n### How to compile this project?\nAfter you've downloaded this repo, you can use the following commands\n```bash\nmake\n```\n### How to run this Project?\nAfter you used the ```make``` command, your binary executable in is ```./Blank \\Window.app/Conntet/MacOS/blankwindow```. If you take a look at the MakeFile, you'll see an automation in building the entire project in Apple's app bundles. Tho it doesn't mean you can simply double click and everything will work because Apple tends to make this step harder unless you get that Apple Developers account thing. \n\n### Final Results Part 1\nAfter you found your compile exectuable, there are two different ways to open your executable; CLI or Finder. Assuming you know where the executable is, type ```./Blank \\Window.app/Conntet/MacOS/blankwindow``` or double click the executable on Finder. This is what the window used to look like. By following one of my [sources](#credits), you can get a window looking like this and a simplfied project structure:\n![Blank Project Window](./documentation/assets//projectwindow.png \"An empty, unused window with infinite potential\")\n\n### Final Results Part 2\nI've recently added a semi-realistic foundation in building this template's project to production. So now that I've added ImGui the following is what you should see:\n![Blank Project Window with ImGui](./documentation/assets/updatedprojectwindow.png \"A mostly empty window that showcases ImGui being used for UI elements.\")\n\nYep... That's it. \n\n## Possible Warnings\n### CLI Errors\nThe following error you get is predictable because Apple has left OpenGL to use Metal. Most mordern Apple products use Metal nowadays so while this project is excellent for learning, it isn't the best for production.\n```bash\nclang ./src/*.cpp -o ./bin/blankwindow -I./src/vendors/GLFW -framework Cocoa -framework OpenGL -framework IOKit -L./src/vendors/GLFW/lib -lglfw3\n./src/main.cpp:29:9: warning: 'glClear' is deprecated: first deprecated in macOS 10.14 - OpenGL API deprecated. (Define GL_SILENCE_DEPRECATION to silence these warnings) [-Wdeprecated-declarations]\n   29 |         glClear(GL_COLOR_BUFFER_BIT);\n      |         ^\n```\nMetal does have a steeper learning curve in comparison to OpenGL (using GLFW). Your project should still build and run. It's just not going to be updated in the future. \n\n### OpenGL Versioning\nMake sure you are using the correct GLSL number thats mapped to the right OpenGL version. Heres a table to show you. Curtosy of Perplexity from a butt load of sources:\n![Table of OpenGL and GLSL versions](./documentation/assets//OpenGL-GLSL-Table.png \"Double Check your GLSL versions when you're coding otherwise you wont get anything\")\n\n## Contributing\n### CLI (using HTTPS)\n```bash\ngit clone https://github.com/H12M54AM/blank-opengl-window.git\n```\n### CLI (using SSH)\n```bash\ngit@github.com:H12M54AM/blank-opengl-window.git\n```\n\n## Credits\nMaybe these will help you too :)\n- [C++ OpenGL Setup by Codeus - Youtube](https://www.youtube.com/watch?v=Y4F0tI7WlDs)\n- [Welcome to OpenGL by The Cherno - Youtube](https://www.youtube.com/watch?v=W3gAzLwfIP0\u0026list=PLlrATfBNZ98foTJPJ_Ev03o2oq3-GGOS2)\n- [How to setup GLFW on new Macs by LuTheCoder - Youtube](https://www.youtube.com/watch?v=6AHq0jTrypw\u0026t=471s)\n- [ImGui + GLFW Tutorial - Install \u0026 Basics](https://www.youtube.com/watch?v=VRwhNKoxUtk)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh12m54am%2Fblank-opengl-window","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh12m54am%2Fblank-opengl-window","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh12m54am%2Fblank-opengl-window/lists"}