Я пытаюсь получить точку привязки переменной изображения в моем шейдере GLES. Я могу сделать это для блоков хранения юниформ или шейдеров, используя этот код:
GLenum Prop = GL_BUFFER_BINDING;
GLint Binding = -1;
GLint ValuesWritten = 0;
glGetProgramResourceiv( GLProgram, GL_UNIFORM_BLOCK, i, 1, &Prop, 1, &ValuesWritten, &Binding );
К сожалению, такого понятия, как GL_IMAGE_BINDING
, не существует. В десктопном GL я просто получаю местоположение униформы изображения, используя GetUniformLocation
, а затем привязываю его к слоту изображения, используя glProgramUniform1i
. К сожалению, в OpenGLES glProgramUniform1i
можно использовать только для юниформ-образцов и не работает для униформ-образов. Причина, по которой мне нужна эта точка привязки, заключается в том, что я выполняю автоматическую привязку ресурсов. Мои ресурсы могут быть связаны с единым именем переменной. Я хочу, чтобы они автоматически назначались правильному слоту изображения. Пока это работает нормально для всех ресурсов, кроме изображений в GLES.