当前位置: 代码迷 >> Android >> android opengl es c代码 全部函数返回都正常,但看不到结果,分析原因
  详细解决方案

android opengl es c代码 全部函数返回都正常,但看不到结果,分析原因

热度:35   发布时间:2016-05-01 11:18:48.0
android opengl es c代码 所有函数返回都正常,但看不到结果,分析原因
glClearColor(1.0f,1.0f,1.0f,1.0f);   //将背景清为白色,只有这一句起作用了
log_info("glClearColor",glGetError());

  glClear(GL_COLOR_BUFFER_BIT);
log_info("glClear",glGetError());

glColor4f(0.0f,0.0f,1.0f,1.0f);
log_info("glColor4f",glGetError());

glViewport(0,0,engine->width,engine->height);
log_info("glViewport",glGetError());  

GLfloat v[6]={10,10,0,100,100,0};
 
glLineWidth(2.0);
log_info("glLineWidth",glGetError());

glVertexPointer(3,GL_FLOAT,0,v);
log_info("glVertexPointer",glGetError());

glDrawArrays(GL_LINES,0,2); 
log_info("glDrawArrays",glGetError());
//glDrawElements(GL_LINES,2,GL_FLOAT,v);
 
      //glFlush();


    
    eglSwapBuffers(engine->display, engine->surface);
log_info("eglSwapBuffers",glGetError());

///////////////
log_info是记录日志的,通过日志,所有函数都返回GL_NO_ERROR,但为什么只有第一句填充背景起作用了呢。程序本意在白色背景上画一条蓝色,宽度为2的线段。但是平面上只有白色 没看到线。这是为什么呢?求帮助。

------解决方案--------------------
该回复于2010-12-27 08:30:57被版主删除

------解决方案--------------------
Java的代码应该先把坐标往屏幕里面移动一些,否则和视角在一个平面上就看不到了,就好像把纸贴在眼睛上,纸上的东西你也看不清。c的应该类似,供参考
gl.glTranslatef(0.0f, 0.0f, -10.0f);
  相关解决方案