Skip to content
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

Update primitives.dox #48

wants to merge 2 commits into from

Update primitives.dox #48

wants to merge 2 commits into from


Copy link

@uzername uzername commented Aug 5, 2018

Expanding primitives example to cover even the minor details!

Expanding primitives example to cover even the minor details!
Copy link

Squareys commented Aug 6, 2018

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.

Copy link
Contributor Author

uzername commented Aug 7, 2018

Great to see such expanded feedback.
Magnum has great perspectives to be used in the field of engineering. And there may be a lot of code in project, besides Magnum, a project may have a sophisticated configuration with homebrew and thirdparty lib files. It is way more easier for beginner to add just another lib file to project than fiddle with CMake, and it is more common too. Some people want to have their cube rendered right now, but not after configuring CMake. Some people prefer more systematic way using project generator. Let's give alternative.
I have spent a lot of time picking the right lib files and getting them in right order. So I want to help other people who come across this article to save their time.

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.
@mosra mosra added this to the 2018.0c milestone Aug 24, 2018
@mosra mosra added this to TODO in Project management via automation Aug 24, 2018
@mosra mosra self-assigned this Aug 24, 2018
@mosra mosra mentioned this pull request Aug 24, 2018
56 tasks
Copy link

mosra commented Oct 15, 2018

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, 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.

@mosra mosra closed this Oct 15, 2018
Project management automation moved this from TODO to Done Oct 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Successfully merging this pull request may close these issues.

None yet

3 participants