glDrawArrays, динамически изменить количество рисуемых точек? - PullRequest
1 голос
/ 11 апреля 2011

У меня есть ключевая функция / событие, позволяющее пользователю уменьшить «numParticles»

   glDrawArrays( GL_POINTS, 0, numParticles );

Но изменение только этой переменной не меняет количество рисуемых точек

Так что я должен изменить исходный массив «вершин»?

Теперь я добавил

glClear(GL_COLOR_BUFFER_BIT);

Я вижу, как меняется количество очков.

Но после уменьшения «numParticles» до нуля на экране остаются точки?

Также, похоже, это не влияет на точки, обновленные шейдером?

код

1 Ответ

0 голосов
/ 24 мая 2011

В вашем заголовке есть ошибка:

static int numParticles = 50000;

Это создаст локальную переменную для каждого объекта (файла), тогда объект draw.o будет иметь свою собственную переменную, которую ogl2particle.o don 'т изменить.Вместо этого вы должны использовать:

extern int numParticles = 50000;

И в любом, но только в одном файле:

int numParticles = 50000;

Вы можете прочитать что-нибудь о глобальных переменных в c на http://en.wikipedia.org/wiki/External_variable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...