-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What is all-core? When should I use it? #122
Comments
Also wondering about this. What I've found that's interesting is that on my macbook, I can use v4.1-core, or all-core, and both work. But if I try to use v4.6-core (osx doesn't support >4.1), I get init errors due to missing function pointers. Is all-core just silently skipping functions it can't bind on the platform's opengl version? |
Hello there! This behaviour is in part a possible answer to the core question: Why does this exist? However I do have a practical answer by example: Sometimes, various graphics card drivers do not implement the complete set of features of a particular version. I've had a laptop once that would support all of OpenGL 4.1, and a few functions of 4.2. (Numbers might not be exact, you get the idea.) Such a lenient approach is a case-by-case approach and a special circumstance. I guess it would be too much to create all permutations for all versions (main, compatible, lenient) - In such a special case I'd probably use |
Thanks for your answer! I didn't know whether more people would chime in, but given there's been no further activity/interest, I'm going to close the issue at this point. |
Thanks for this repo, I've used it several times, always importing v3.3+. Today I came upon someone else's work which imported all-core. That raised some questions for me:
I tried to do a little research to find out the answer. I came upon this in the Khronos wiki and wondered if it was related:
So I wondered if it was sort of "representative" of early versions (e.g. from the OpenGL Registry).
From issue #104 I learned it's not appropriate to import all-core alongside another version's gl import (makes sense when one looks at the code).
Then in generate.go I found this line:
So now I know where it comes from. In the Glow readme I found:
I think that means it includes every function from every version. So say if your video card only supported 3.3 and you used all-core, you could end up calling a gl function that wouldn't work? So I guess this first question might be more appropriate in the Glow repo. Which brings me to my second question, which I think belongs here:
When is it appropriate or advantageous to import all-core instead of one of the versioned gl packages (e.g. 3.3)?
The text was updated successfully, but these errors were encountered: