AGLContext create_gl(WindowRef wref) { GLint major, minor; AGLContext ctx; aglGetVersion(&major, &minor); SkDebugf("---- agl version %d %d\n", major, minor); const GLint pixelAttrs[] = { AGL_RGBA, AGL_STENCIL_SIZE, 8, #if USE_MSAA AGL_SAMPLE_BUFFERS_ARB, 1, AGL_MULTISAMPLE, AGL_SAMPLES_ARB, 8, #endif AGL_ACCELERATED, AGL_DOUBLEBUFFER, AGL_NONE }; AGLPixelFormat format = aglChoosePixelFormat(NULL, 0, pixelAttrs); //AGLPixelFormat format = aglCreatePixelFormat(pixelAttrs); SkDebugf("----- agl format %p\n", format); ctx = aglCreateContext(format, NULL); SkDebugf("----- agl context %p\n", ctx); aglDestroyPixelFormat(format); static const GLint interval = 1; aglSetInteger(ctx, AGL_SWAP_INTERVAL, &interval); aglSetCurrentContext(ctx); return ctx; }
static void init_gl(WindowRef wref) { GLint major, minor; aglGetVersion(&major, &minor); SkDebugf("---- agl version %d %d\n", major, minor); const GLint pixelAttrs[] = { AGL_RGBA, AGL_DEPTH_SIZE, 32, AGL_OFFSCREEN, AGL_NONE }; AGLPixelFormat format = aglCreatePixelFormat(pixelAttrs); SkDebugf("----- agl format %p\n", format); gAGLContext = aglCreateContext(format, NULL); SkDebugf("----- agl context %p\n", gAGLContext); aglDestroyPixelFormat(format); aglEnable(gAGLContext, GL_BLEND); aglEnable(gAGLContext, GL_LINE_SMOOTH); aglEnable(gAGLContext, GL_POINT_SMOOTH); aglEnable(gAGLContext, GL_POLYGON_SMOOTH); aglSetCurrentContext(gAGLContext); }
bool SkEGLContext::init(int width, int height) { GLint major, minor; AGLContext ctx; aglGetVersion(&major, &minor); //SkDebugf("---- agl version %d %d\n", major, minor); const GLint pixelAttrs[] = { AGL_RGBA, AGL_STENCIL_SIZE, 8, /* AGL_SAMPLE_BUFFERS_ARB, 1, AGL_MULTISAMPLE, AGL_SAMPLES_ARB, 2, */ AGL_ACCELERATED, AGL_NONE }; AGLPixelFormat format = aglChoosePixelFormat(NULL, 0, pixelAttrs); //AGLPixelFormat format = aglCreatePixelFormat(pixelAttrs); //SkDebugf("----- agl format %p\n", format); ctx = aglCreateContext(format, NULL); //SkDebugf("----- agl context %p\n", ctx); aglDestroyPixelFormat(format); /* static const GLint interval = 1; aglSetInteger(ctx, AGL_SWAP_INTERVAL, &interval); */ aglSetCurrentContext(ctx); this->context = ctx; // Now create our FBO render target GLuint fboID; GLuint cbID; GLuint dsID; glGenFramebuffersEXT(1, &fboID); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboID); glGenRenderbuffers(1, &cbID); glBindRenderbuffer(GL_RENDERBUFFER, cbID); glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, width, height); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, cbID); glGenRenderbuffers(1, &dsID); glBindRenderbuffer(GL_RENDERBUFFER, dsID); glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_STENCIL, width, height); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, dsID); glViewport(0, 0, width, height); glClearStencil(0); glClear(GL_STENCIL_BUFFER_BIT); GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); return GL_FRAMEBUFFER_COMPLETE == status; }
const GrGLInterface* SkNativeGLContext::createGLContext() { GLint major, minor; AGLContext ctx; aglGetVersion(&major, &minor); //SkDebugf("---- agl version %d %d\n", major, minor); const GLint pixelAttrs[] = { AGL_RGBA, AGL_ACCELERATED, AGL_NONE }; AGLPixelFormat format = aglChoosePixelFormat(NULL, 0, pixelAttrs); if (NULL == format) { SkDebugf("Format could not be found.\n"); this->destroyGLContext(); return NULL; } fContext = aglCreateContext(format, NULL); if (NULL == fContext) { SkDebugf("Context could not be created.\n"); this->destroyGLContext(); return NULL; } aglDestroyPixelFormat(format); aglSetCurrentContext(fContext); const GrGLInterface* interface = GrGLCreateNativeInterface(); if (NULL == interface) { SkDebugf("Context could not create GL interface.\n"); this->destroyGLContext(); return NULL; } return interface; }