-
Notifications
You must be signed in to change notification settings - Fork 95
Update primitives.dox #48
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
Conversation
Expanding primitives example to cover even the minor details!
Hey there! Thank you for your contribution! 🙏 I understand where you're coming from and admire the work you put in, but feel a little bit uneasy with this patch: If you were to specify the libraries you require for Windows, you should probably also specify them for Linux and Mac also (and Android, Emscripten, iOS...). I believe Magnum has always tried to treat all platforms equally and not neglect some. This is where we open a can of worms, though, the lists will get pretty long and cluttered and will no longer be able to provide a clear, overseeable introduction to newcomers! Apart from being very time consuming to explicitly write down. That, btw. is also why CMake is great, compared to the "good old way" as you call it, because it allows abstracting away the platform, at least to a very high degree. For Windows we also have vcpkg btw, which I'd recommended as the go to way on Windows and integrates nicely with CMake also (but also with Visual Studio directly, if you prefer staying closer to the old way). I really recommend trying to get along with CMake, I remember the struggle myself, but it's worth it, believe me. Similarly with the grid primitive: the examples try to be small and concise so that you get the rough idea fast and then work your way from there. The other primitives work just like the cube and therefore it should not be necessary to explicitly mention how to create and render those. Maybe it is sufficient here to add doc links to the other primitive functions so that people know where to go? Does that make sense? I hope you understand where I'm coming from 😄 Cheers, Jonathan. |
Great to see such expanded feedback. I have not removed CMake instructions, just added a build alternative. And cube is used in a different way than grid because it lacks normals and different shader is used. I guess people would be satisfied to have two examples how to use primitive in article about primitives. |
Modified text to make it more correct and less biased.
Hi, thanks for the contribution! 👍 There's much more than just two types of primitives and mentioning all the quirks and differences (texture coordinates, vertex colors, triangle strips, different shaders, missing normals etc. etc. etc.) would be quite overwhelming, while mentioning just the grid is certainly not enough. So I just added a note in e88daf7, pointing the users to locations where they can learn more. For the custom build, "the good old way" as you say, since mosra/magnum@d6aebc5 there's a whole new section for using Magnum with custom buildsystems. Again, not all people use Visual Studio, some use premake/genie, some write Makefiles directly, there's Bazel, Gradle, there's Android.mk, autohell, Xcode projects, Eclipse etc. etc. etc. and again, mentioning just one particular platform is neglecting all the others. In the documentation section I'm listing just the general important things like library order, again it's not feasible to cover everything down to the last lib file. To give you a credit -- your input helped improve the docs, after all -- I listed you as a co-author on those two commits. |
Expanding primitives example to cover even the minor details!