使用OpenGL ES在绘图应用程序中的颜色重叠问题

时间:2011-07-26 12:58:15

标签: iphone xcode ipad opengl-es paint

我一直在制作油漆应用程序,并且我已经用油漆刷成功实现了绘图。我的问题是我不希望在已经绘制颜色的屏幕上重新绘制颜色。看看截图..我我正在使用OpenGl ES ..我试图将屏幕像素的颜色与当前刷子的颜色相匹配,但我无法正确使用..任何人都可以告诉我哪里出错了?感谢..

probliem的屏幕截图: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 :(得分:0)

你可以应用“图层”机制,其中油漆是不透明的,但它们整体层是部分透明的..我在某个地方的论坛中阅读..