Индекс массива не является целочисленной ошибкой
Просто интересно, может ли кто-нибудь помочь мне со следующим фрагментом кода:
// Get uniform locations.
GLint m_nUniforms = 0;
glUniformMatrix4fv(uniforms, 1, 0, _modelViewProjectionMatrix.m);
glGetProgramiv(_program, GL_ACTIVE_UNIFORMS, &m_nUniforms);
for(unsigned i = 0; i < m_nUniforms; i++)
{
char *uniformName = NULL;
GLint size;
GLenum type;
glGetActiveUniform(_program, i, max_length + 1, NULL, &size, &type, uniformName);
uniforms[uniformName] = glGetUniformLocation(_program, uniformName);
}
Я хочу назначить униформу с индексом типа char * uiformName для каждой итерации цикла for. Я получаю сообщение об ошибке "Индекс массива не является целым числом".
Как я могу использовать символ в качестве индекса массива?
Спасибо
1 ответ
Тогда вам нужен словарь, в котором ключ и значение являются строками:
NSMutableDictionary *uniforms = [[NSMutableDictionary alloc] init];
for (blah)
{
glGetActiveUniform(_program, i, max_length + 1, NULL, &size, &type, uniformName);
char *uniform = glGetUniformLocation(_program, uniformName);
[uniforms addObject:[NSString stringWithUTF8String:uniform]
forKey:[NSString stringWithUTF8String:uniformName]];
}