線glActiveTexture()拋出GL_INVALID_ENUM
glActiveTexture(GL_TEXTURE0+32);
拋出GL_INVALID_ENUM(如我發現運行glGetError()),而
glActiveTexture(GL_TEXTURE0+31);
運行正常。
「如果質地不GL_TEXTUREi,其中i的範圍從0到GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS減一的值中的一個GL_INVALID_ENUM產生」。
但在我的情況GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS被定義爲35661,並根據相同的文檔
「的紋理單元的數目是依賴於實現的,但必須至少爲80」。
我該如何解決這個問題?
以防萬一,GL_TEXTURE0被定義爲33984和我的OpenGL的版本是2.1
GL規定每級16個紋理圖像單位。 GL 2.1只有兩個階段(頂點和片段)。因此,如果不是80(Vertex,Fragment,Tessellation Control,Tessellation Evaluation,Geometry-GL4),你有32個。 –