Индекс массива не является целочисленной ошибкой

Просто интересно, может ли кто-нибудь помочь мне со следующим фрагментом кода:

// 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]];
}
Другие вопросы по тегам