Проблема наложения цвета в приложении рисования с использованием OpenGL ES - PullRequest
1 голос
/ 26 июля 2011

Я делаю приложение для рисования и успешно реализовал рисование кистью .. Моя проблема в том, что я не хочу, чтобы цвет перерисовывался на экране, где цвет уже был нарисован .. Посмотрите на скриншот .. ЯЯ использую OpenGl ES .. Я пытался сопоставить цвет пикселей экрана с цветом текущей кисти, но я не мог сделать это правильно .. Может кто-нибудь сказать мне, где я иду не так?Спасибо ..

Снимок экрана для проблемы: http://imageshack.us/photo/my-images/842/screenshot20110726at601.png/

Я вставляю свой код здесь:

  - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
  {  

CGRect  bounds =[self bounds];
UITouch *touch = [[event touchesForView:self] anyObject];
//glDisable(GL_BLEND); 

  glEnable(GL_BLEND);     
  Byte pixel[4];
glReadPixels(location.x,location.y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixel);
NSLog(@"%d %d %d %d",pixel[0],pixel[1],pixel[2],pixel[3]);

r_comp=(float)pixel[0]/255;
g_comp=(float)pixel[1]/255;
b_comp=(float)pixel[2]/255;

artbrushAppDelegate *app=(artbrushAppDelegate *)[[UIApplication sharedApplication]delegate];

  if(r_comp==app.rg && g_comp==app.gg && b_comp==app.bg) 
 // app.rg,app.bg,app.gg are brush colors saved in global varable
{

    glEnable(GL_BLEND); 
}

else
{

    glDisable(GL_BLEND); 
}

1 Ответ

0 голосов
/ 02 августа 2011

Вы можете применить механизм "слоев", когда краска непрозрачна, но их слой в целом частично прозрачен .. Я читал это где-то на форуме ..

...