{"id":16214809,"url":"https://github.com/lecrapouille/openglcppwrapper","last_synced_at":"2025-03-19T09:31:24.855Z","repository":{"id":115857167,"uuid":"157781773","full_name":"Lecrapouille/OpenGLCppWrapper","owner":"Lecrapouille","description":"[Lib][Version 0.9][Partially Functional][WIP] A C++ 11 wrapper for Core Profile OpenGL allowing to write complete applications in a reduced number of lines of code","archived":false,"fork":false,"pushed_at":"2024-03-31T09:05:57.000Z","size":2311,"stargazers_count":12,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T17:50:37.647Z","etag":null,"topics":["3d","3d-engine","3d-game","3d-graphics","cpp","cpp11","game-development","glumpy","graphics","graphics-programming","opengl","opengl-functions","opengl-tutorial","opengl-wrapper","rendering","shaders","three-cpp","three-js","wrapper"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lecrapouille.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null}},"created_at":"2018-11-15T22:41:35.000Z","updated_at":"2024-05-12T10:13:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"8c7c7d61-95f4-4db5-aa59-f0ae5b5697ee","html_url":"https://github.com/Lecrapouille/OpenGLCppWrapper","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lecrapouille%2FOpenGLCppWrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lecrapouille%2FOpenGLCppWrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lecrapouille%2FOpenGLCppWrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lecrapouille%2FOpenGLCppWrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lecrapouille","download_url":"https://codeload.github.com/Lecrapouille/OpenGLCppWrapper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243982140,"owners_count":20378605,"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":["3d","3d-engine","3d-game","3d-graphics","cpp","cpp11","game-development","glumpy","graphics","graphics-programming","opengl","opengl-functions","opengl-tutorial","opengl-wrapper","rendering","shaders","three-cpp","three-js","wrapper"],"created_at":"2024-10-10T11:13:04.375Z","updated_at":"2025-03-19T09:31:23.892Z","avatar_url":"https://github.com/Lecrapouille.png","language":"C++","readme":"# OpenGLCppWrapper\n\n## What is OpenGLCppWrapper Library ?\n\n[OpenGLCppWrapper](https://github.com/Lecrapouille/OpenGLCppWrapper) is a\nC++11 wrapper for writing OpenGL `Core Profile` applications in few lines of\ncode.\n\n**Warning:** Do not confuse Core Profile OpenGL (\u003e= 2.2) with Legacy Profile\nOpenGL (\u003c= 2.1). This API does not manage OpenGL Legacy Profile, but manages\nOpenGL Core Profile version \u003e= 3.3.\n\nThis API is split in two parts:\n\n- The first API part (functional), greatly been inspired by the\n  [Glumpy](https://github.com/glumpy/glumpy) project, is object-oriented based\n  does not just content to give a C++ flavor name to OpenGL routines but hides\n  for you the complexity of calling in the correct order OpenGL functions as\n  well as passing correct parameters to them. You, as developer, will have just\n  to deal writing your OpenGL shaders (GLSL language), asking to\n  OpenGLCppWrapper to compile them, and filling data to populated VBOs (such as\n  vertices position, texture coordinates, normals ...) or loading the desired\n  textures image (png, jpeg) to populated samplers. Nothing more complex indeed,\n  OpenGLCppWrapper will instantiate classes wrapping OpenGL VAOs, VBOs, texture,\n  framebuffers once shaders have been compiled ... It also manages OpenGL object\n  lifetime: it makes automatic the transfer of \"dirty\" CPU data (from your C++\n  space memory point of view) to the graphics card memory (VBOs, textures).\n\n- The second API part (not functional, rework in progress), greatly been\n  inspired by the [three.js](https://github.com/mrdoob/three.js) project gives\n  you more abstraction, by offering some basic functionalities such as geometric\n  primitives, materials, camera, lights and scene graph. This part will simplify\n  you creating OpenGL scenes.\n\n**Warning:** This library is not a game engine but just an oriented object\nwrapper for OpenGL that can be used for a game engine. As drawbacks, this API is\nless cache friendly than calling directly your OpenGL routines (due to a lot of\nif-then-else, smart pointers and dynamic cast). This is the price of hiding the\ncomplexity and staying generic.\n\n### Table Of Contents\n\n* [Installation](doc/Install.md)\n* [Tutorial](doc/tutorials/Core.md)\n* [Examples](examples/README.md)\n* [Architecture](doc/Architecture.md)\n* [Credits](doc/Credits.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flecrapouille%2Fopenglcppwrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flecrapouille%2Fopenglcppwrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flecrapouille%2Fopenglcppwrapper/lists"}