Опитвам се да получа точка на свързване на променлива на изображението в моя 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
. В desktop GL аз просто получавам местоположението на униформата на изображението с помощта на GetUniformLocation
и след това го свързвам към слот за изображение с помощта на glProgramUniform1i
. За съжаление в OpenGLES glProgramUniform1i
може да се използва само за униформи за вземане на проби и не работи за униформи с изображения. Причината, поради която имам нужда от тази точка на свързване, е, че правя автоматично свързване на ресурси. Моите ресурси могат да бъдат свързани с еднообразно име на променлива. Искам те автоматично да бъдат присвоени на десния слот за изображение. Това работи добре досега за всички ресурси, с изключение на изображенията на GLES.