Вы можете использовать:
GLfloat coordinates[8] = {1.0f, ..., 0.0f};
но это инициализация во время компиляции - вы не можете использовать этот метод в текущем стандарте для повторной инициализации (хотя я думаю, что есть способы сделать это в следующем стандарте, который может не помочь вам сразу).
Два других способа, которые приходят на ум, - взламывать содержимое, если оно исправлено:
GLfloat base_coordinates[8] = {1.0f, ..., 0.0f};
GLfloat coordinates[8];
:
memcpy (coordinates, base_coordinates, sizeof (coordinates));
или предоставьте функцию, которая в любом случае будет выглядеть как ваш код инициализации:
void setCoords (float *p0, float p1, ..., float p8) {
p0[0] = p1; p0[1] = p2; p0[2] = p3; p0[3] = p4;
p0[4] = p5; p0[5] = p6; p0[6] = p7; p0[7] = p8;
}
:
setCoords (coordinates, 1.0f, ..., 0.0f);
с учетом того, что эти эллипсы (...
) являются заполнителями, а не вещами, которые буквально вставляются в код.