GLES2Renderer::GLES2Renderer(const RendererDesc &desc, const char* assetDir) : Renderer(DRIVER_GLES2, assetDir), m_platform(SampleFramework::SamplePlatform::platform()) { m_displayWidth = 0; m_displayHeight = 0; m_quadRender = false; m_viewMatrix = PxMat44::createIdentity(); m_platform->initializeOGLDisplay(desc, m_displayWidth, m_displayHeight); #if defined RENDERER_ANDROID glMapBufferOES = (PFNGLMAPBUFFEROESPROC) eglGetProcAddress("glMapBufferOES"); glUnmapBufferOES = (PFNGLUNMAPBUFFEROESPROC) eglGetProcAddress("glUnmapBufferOES"); if (!glMapBufferOES || !glUnmapBufferOES) { GLEW_ARB_vertex_buffer_object = false; } #endif checkResize(); RendererColor& clearColor = getClearColor(); glClearColor(clearColor.r/255.0f, clearColor.g/255.0f, clearColor.b/255.0f, clearColor.a/255.0f); glEnable(GL_CULL_FACE); glCullFace(GL_BACK); glFrontFace(GL_CW); glEnable(GL_DEPTH_TEST); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(GL_TRUE); glDepthFunc(GL_LESS); }
// clears the offscreen buffers. void GLES2Renderer::clearBuffers(void) { if(begin()) { glFinish(); GLbitfield glbuf = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT; //glDepthMask(true); RendererColor& clearColor = getClearColor(); glClearColor(clearColor.r/255.0f, clearColor.g/255.0f, clearColor.b/255.0f, clearColor.a/255.0f); glClear(glbuf); } end(); }
void IContext::get( VGuint type, VGfloat *fv ) const { switch ( type ) { case VG_CLEAR_COLOR: getClearColor( fv ); break; case VG_GLYPH_ORIGIN: getGlyphOrigin( fv ); break; default: SetError( VG_ILLEGAL_ARGUMENT_ERROR ); break; } }