Я пытаюсь нарисовать квадрат на Android, используя код ниже:
void drawSquare()
{
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
GLfloat vertices[] =
{
-0.5f, -0.5f,
0.5f, -0.5f,
0.5f, 0.5f,
-0.5f, 0.5f
};
GLubyte indices[] = { 0, 1, 2, 3 };
glVertexPointer(2, GL_FLOAT, 0, vertices);
glDrawElements(GL_TRIANGLES, 4, GL_UNSIGNED_BYTE, indices);
}
Прежде, чем вызвать этот метод, я настроил отображение следующим образом:
bool initDisplay()
{
const EGLint attribs[] =
{
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_BLUE_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_RED_SIZE, 8,
EGL_NONE
};
EGLint format;
EGLint numConfigs;
EGLConfig config;
EGLDisplay mDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(mDisplay, 0, 0);
eglChooseConfig(mDisplay, attribs, &config, 1, &numConfigs);
eglGetConfigAttrib(mDisplay, config, EGL_NATIVE_VISUAL_ID, &format);
ANativeWindow_setBuffersGeometry(mApp->window, 0, 0, format);
EGLSurface mSurface = eglCreateWindowSurface(mDisplay, config, mApp->window, NULL);
EGLContext mContext = eglCreateContext(mDisplay, config, NULL, NULL);
eglMakeCurrent(mDisplay, mSurface, mSurface, mContext);
eglQuerySurface(mDisplay, mSurface, EGL_WIDTH, &mWidth);
eglQuerySurface(mDisplay, mSurface, EGL_HEIGHT, &mHeight);
return true;
}
И настройки OpenGL вроде:
bool initGL()
{
glDisable(GL_DITHER);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
glClearColor(0.f, 0.f, 0.f, 1.0f);
glShadeModel(GL_SMOOTH);
glViewport(0, 0, mWidth, mHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
return true;
}
Однако я не вижу квадрата на экране.Просто посмотрите на черный экран.Заранее спасибо за помощь.