Talk:Common Mistakes

From OpenGL Wiki
Jump to navigation Jump to search

The list of common mistakes is very long, and hard to read. The entries should be split into categories, perhaps also into different pages. I'm not sure how to categorize them, else I wound have done it.

I'm not sure who wrote the line above. Please type a tilde 4 times to sign. Now about the Paletted textures section. I have noticed someone has edited to add the following "But there are still a lot of video cards around that don't support shaders, so you'll have to implement it using GL_EXT_paletted_texture as well.". There is an assumption being made that if a hardware doesn't support shaders, that it supports GL_EXT_paletted_texture. Furthermore, that section was added by me since I noticed that a few users were getting surprised that that extension was dropped. We don't need to tell the programmer there are a lot of hardware out there that supports GL_EXT_paletted_texture. That's ridiculous. For that reason, I'm pulling that text out. V-man 12:59, 3 July 2011 (PDT)

It was me who posted the fist line, I thought the timestamps were added automatically back then. --Zyx 2000 14:06, 4 July 2011 (PDT)

I have moved some sections related to deprecated features to a separate article. I still believe this article is too long, and I might split it up more in the future. --Zyx 2000 14:05, 9 July 2011 (PDT)

BGRA Preference

Under Slow pixel transfer performance:

"On which platforms is GL_BGRA preferred? Making a list would be too long but one example is Microsoft Windows."

Does such a list exist somewhere? I am currently developing an OpenGL-based library for which I cannot require 4.3, and would rather avoid possibly missing extensions to use ARB_internalformat_query2. --WilliamKappler (talk) 13:24, 8 February 2016 (EST)

Texture C++ class example code

Regarding the newly added sample code for a C++ texture class, I would like to propose the following changes: First, zero-initialize the internal handle, like "GLuint obj_ = 0;". Second, add a default constructor, like "MyTexture() = default;". These changes should hopefully prevent some bugs with uninitialized data, and also save users of this code the trouble of properly defining the default constructor. Nguillemot (talk) 23:32, 21 October 2017 (UTC)

Adding a default constructor is not necessary. If the user does not heed the "Other constructors as normal" comment, they will find that they cannot construct the type at all. By the rules of C++, default constructors are disabled if the class has a user-provided constructor. This includes the move constructor. Adding a default member initializer however is reasonable. Alfonse (talk) 04:12, 22 October 2017 (UTC)
FYI: I should have said "implicit default constructors are disabled". Obviously you can still write your own. Alfonse (talk) 04:42, 22 October 2017 (UTC)

Texture Image Unit benefits

What do we benefit from introducing TIU instead of TU? I read from Common Mistakes that TIUs are independent of texture coordinate. Is this the only advantage of TIU?

This wiki primarily describes concepts related to the core profile of OpenGL 3.0 or higher. Old-style texture units were removed from desktop OpenGL in 3.1. Texture image units are all that are left. So the primary "advantage" of TIU is that they are usable, unlike TUs which require the compatibility profile and other non-shader-based junk. Alfonse (talk) 07:43, 17 January 2020 (UTC)