GLFW-CMake-starter
NGL
GLFW-CMake-starter | NGL | |
---|---|---|
1 | 13 | |
135 | 89 | |
- | - | |
4.0 | 7.9 | |
2 months ago | 18 days ago | |
CMake | C++ | |
zlib License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
GLFW-CMake-starter
-
Good 3D Library for M1 (arm64) mac?
For a quick start cmake project we made this starter: https://github.com/juliettef/GLFW-CMake-starter
NGL
-
Understanding OpenGL setup & compilation on Windows
I have a number of instructions on my Github pages here https://github.com/NCCA/NGL/blob/main/Windows.md whilst aimed at my own library the first part about installing Visual Studio and the basic setup will help.
-
How objects lifetime should be managed by library?
code here https://github.com/NCCA/NGL
-
How to deal with MSVC in DevOps
My Windows build is here https://github.com/NCCA/NGL/blob/main/.github/workflows/windows.yml I use vcpkg for installing 3rd party libs and the msvc-dev command from here https://github.com/ilammy/msvc-dev-cmd
-
I have spent two whole work days trying to install GLEW
Also I have just done an experimental version of my code that uses WSL2 (which supports graphics). You could try that. https://github.com/NCCA/NGL/blob/NewShaderLib/WSL.md
-
An OpenGL Renderer
I also have a ShaderLib class that does similar stuff keeping everything in a static map (used to be a singleton class). Been using it for teaching for a number of years you can see it here https://github.com/NCCA/NGL
-
4 hours of my .obj parser so far ðŸ˜
There are loads of edge cases and gotcha's as well. I have a full(ish) parser here with unit tests if it helps. (Note I use pystring to do the string processing). https://github.com/NCCA/NGL/blob/main/src/Obj.cpp unit tests here https://github.com/NCCA/NGL/blob/main/tests/ObjTests.cpp. May give you some ideas.
-
C++ library management absolutely sucks!
I use glfw in a number of projects here are my instructions for building my library https://github.com/NCCA/NGL/blob/main/Windows.md You should be able to use the bits you need from here to setup vcpkg etc. I suggest using the free Visual Studio community edition and installing most of the tools you need from there. After that install vcpkg and setup the paths required. (see my notes).
-
I am 13 I think I'm finished learning intermediate C++ whats next?
The one I use in my teaching is here. https://github.com/NCCA/NGL it also includes Math / Vec class which you may not need if you use something like GLM. Also this uses TDD so get into writing unit tests as part of it.
-
Smart pointers question
typically I just have classes with static factory methods to keep things together, usually with a std::unordered_map s_things; so I can create by name. This is an example for an OpenGL Vertex Array Object https://github.com/NCCA/NGL/blob/master/include/ngl/VAOFactory.h
-
GLFW Creating a VAO/VBO Class
I have several using a Factory design pattern here https://github.com/NCCA/NGL Checkout https://github.com/NCCA/NGL/blob/master/include/ngl/AbstractVAO.h for the basic structure, then I have different versions depending upon context and usage.
What are some alternatives?
MoltenVK - MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
tinyrenderer - A brief computer graphics / rendering course
Vcpkg - C++ Library Manager for Windows, Linux, and MacOS
RayTracer - A ray tracing program
Ultralight - Lightweight, high-performance HTML renderer for game and app developers.
msvc-dev-cmd - GitHub Action to setup Developer Command Prompt for Microsoft Visual C++
ModernGL - Minimal Modern OpenGL Demos (Version 4.x).
opengl_renderer
GLFW - A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
NCCABoilerplate - A set of Boilerplate projects for most of the work we do
CPP20-Cross-Platform-Template - A template for a cross-platform C++20 project including CMake, unit-testing with Catch, cross-platform CI with Travis-CI/Github Actions and cross-platform release builds using Github Actions.
ninja - a small build system with a focus on speed