обработка цветового массива с помощью openGL - PullRequest
0 голосов
/ 21 июля 2010

Я занимаюсь разработкой приложения для ipad с openGL.В моем приложении я в основном рисую базовую форму, то есть 3d-куб, который может вращаться в соответствии с движением пальца пользователя.Теперь я застрял на красящей части этого куба.Я хочу, чтобы пользователь выбирал поверхности по своему выбору для окраски этой формы.

Итак, что я пытаюсь сделать ... Я меняю массив для glColorPointer () каждый раз, когда пользователь меняет цвет.Но не могу добиться успеха в этом.Вот пример того, что я пытаюсь сделать

пример кода:

const GLubyte *cubeFace1;
const GLubyte *cubeFace2;

NSMutableArray *cubeFace1Arr = [[NSMutableArray alloc] initWithCapacity:20 ];
for ( i = 0; i < 16; i++) {
// black color. value of '255' will change according to the user's selection of color
    [cubeFace1Arr addObject: [NSNumber numberWithInt:255]];
}

NSMutableArray *cubeFace2Arr = [[NSMutableArray alloc] initWithCapacity:20 ];
for ( i = 0; i < 16; i++) {
// white color. value of '0' will change according to the user's selection of color
    [cubeFace2Arr addObject: [NSNumber numberWithInt:0]];
}

cubeFace1 = cubeFace1Arr; // warning: assignment from incompatible pointer type
cubeFace1 = cubeFace2Arr; // warning: assignment from incompatible pointer type


glColorPointer(4, GL_UNSIGNED_BYTE, 0, cubeFace1);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, cubeFace2);

Итак, моя основная проблема заключается в том, как динамически генерировать этот массив цветов?или как я убираю этот паринг !! !!

Заранее спасибо и помощь оценена.

1 Ответ

1 голос
/ 21 июля 2010

glColorPointer (как и в большинстве вызовов OpenGL) хочет простые массивы C, а не объекты Objective-C NSArray.

struct RGBAColor {
    GLubyte r, g, b, a;
};

struct RGBAColor cubeFace1[16];
for( int i = 0; i < 16; i++ ) {
    cubeFace1[i].r = 255;
    cubeFace1[i].g = 255;
    cubeFace1[i].b = 255;
    cubeFace1[i].a = 255;
}
glColorPointer( 4, GL_UNSIGNED_BYTE, 0, cubeFace1 );

Я настоятельно рекомендую ознакомиться с документацией .

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