{"id":18796123,"url":"https://github.com/niosus/igloo","last_synced_at":"2025-07-05T19:34:59.012Z","repository":{"id":40480124,"uuid":"240476737","full_name":"niosus/IGLOO","owner":"niosus","description":"🏔️ IGLOO: Intuitive openGL Object Oriented library","archived":false,"fork":false,"pushed_at":"2022-10-17T19:32:28.000Z","size":1515,"stargazers_count":15,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-27T06:44:40.449Z","etag":null,"topics":["c-plus-plus-17","oop","opengl","opengl-tutorials"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/niosus.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}},"created_at":"2020-02-14T09:52:33.000Z","updated_at":"2025-02-01T15:42:44.000Z","dependencies_parsed_at":"2023-01-19T21:45:48.632Z","dependency_job_id":null,"html_url":"https://github.com/niosus/IGLOO","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niosus%2FIGLOO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niosus%2FIGLOO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niosus%2FIGLOO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niosus%2FIGLOO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/niosus","download_url":"https://codeload.github.com/niosus/IGLOO/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248739974,"owners_count":21154248,"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":["c-plus-plus-17","oop","opengl","opengl-tutorials"],"created_at":"2024-11-07T21:36:43.524Z","updated_at":"2025-04-13T15:41:54.962Z","avatar_url":"https://github.com/niosus.png","language":"C++","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"200\" height=\"200\" align=\"right\" src=\".github/icon/igloo.png\"\u003e\n\u003c/p\u003e\n\n# IGLOO\n#### **I**ntuitive open**GL** **O**bject **O**riented library\n\n![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/niosus/IGLOO/CI/master?style=for-the-badge)\n\nThis is a library that wraps OpenGL library into objects. It aims to be close\nto zero-overhead in terms of runtime while offering intuitive and safe\ninterfaces to underlying OpenGL library. The core idea is to make it hard to\nmake a mistake that is hard to debug while not incurring too high cost for\nsuch guarantees. The library tries to use static memory allocation where\npossible, using traits to make sure the sizes of types are guessed correctly\nand are translated into OpenGL types properly.\n\n#### 🚧 Under construction 🚧\n\nI am by far not an expert in OpenGL and constructive feedback and/or\ncorrections are welcome. This library is also not complete and will be so for\nthe observable future. Things may change, APIs broken and all the hell can\nbreak loose. That being said, I would love to see other people using this and\nhopefully someday it will reach a stable state. \n\n## How to build and test\n\nBuilding the library and running the tests should be as simple as:\n```bash\nbazel build //...  # build\nbazel test --test_output=errors --test_env=DISPLAY=:0 //...  # test\n```\n\n### Prerequisites\n\nThe build is not fully hermetic and relies on some libraries present on your\nsystem. On Ubuntu 20.04 you would need to install some libraries. You can\nfind the list in the [build job script](.github/workflows/main.yml).\n\n## Examples\n\nI try to follow the tutorials from this awesome tutorial:\nhttps://learnopengl.com/ \n\nYou can find the implementations for some of these using IGLOO in the folder\n[examples/opengl_tutorials/](examples/opengl_tutorials/)\n\n## Credits\n\nThe underlying library is inspired by other efforts to achieve OOP approach to\nOpenGL. Most notably a library of my ex-colleague [Dr. Jens Behley]\n(https://github.com/jbehley): https://github.com/jbehley/glow\n\n\u003cdiv\u003eIcon made by \u003ca href=\"https://www.flaticon.com/authors/vignesh-oviyan\" title=\"Vignesh Oviyan\"\u003eVignesh Oviyan\u003c/a\u003e from \u003ca href=\"https://www.flaticon.com/\" title=\"Flaticon\"\u003ewww.flaticon.com\u003c/a\u003e\u003c/div\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniosus%2Figloo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniosus%2Figloo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniosus%2Figloo/lists"}