| Index: src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp
|
| diff --git a/src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp b/src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp
|
| index bb1908651f5b1f4ad840797b22de399a942e3487..585f1d079eb3a4039b6a4fcc11f7c25526d9a035 100644
|
| --- a/src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp
|
| +++ b/src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp
|
| @@ -5,14 +5,52 @@
|
| * Use of this source code is governed by a BSD-style license that can be
|
| * found in the LICENSE file.
|
| */
|
| -#include <EGL/egl.h>
|
| -
|
| #include "SkOnce.h"
|
| #include "gl/GrGLInterface.h"
|
| #include "gl/GrGLAssembleInterface.h"
|
| #include "gl/command_buffer/SkCommandBufferGLContext.h"
|
| #include "../ports/SkOSLibrary.h"
|
|
|
| +#if defined SK_BUILD_FOR_MAC
|
| +
|
| +// EGL doesn't exist on the mac, so expose what we need to get the command buffer's EGL running.
|
| +typedef void *EGLDisplay;
|
| +typedef unsigned int EGLBoolean;
|
| +typedef void *EGLConfig;
|
| +typedef void *EGLSurface;
|
| +typedef void *EGLContext;
|
| +typedef int32_t EGLint;
|
| +typedef void* EGLNativeDisplayType;
|
| +typedef void* EGLNativeWindowType;
|
| +typedef void (*__eglMustCastToProperFunctionPointerType)(void);
|
| +#define EGL_FALSE 0
|
| +#define EGL_OPENGL_ES2_BIT 0x0004
|
| +#define EGL_CONTEXT_CLIENT_VERSION 0x3098
|
| +#define EGL_NO_SURFACE ((EGLSurface)0)
|
| +#define EGL_NO_DISPLAY ((EGLDisplay)0)
|
| +#define EGL_NO_CONTEXT ((EGLContext)0)
|
| +#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
|
| +#define EGL_SURFACE_TYPE 0x3033
|
| +#define EGL_PBUFFER_BIT 0x0001
|
| +#define EGL_RENDERABLE_TYPE 0x3040
|
| +#define EGL_RED_SIZE 0x3024
|
| +#define EGL_GREEN_SIZE 0x3023
|
| +#define EGL_BLUE_SIZE 0x3022
|
| +#define EGL_ALPHA_SIZE 0x3021
|
| +#define EGL_DEPTH_SIZE 0x3025
|
| +#define EGL_STENCIL_SIZE 0x3025
|
| +#define EGL_SAMPLES 0x3031
|
| +#define EGL_SAMPLE_BUFFERS 0x3032
|
| +#define EGL_NONE 0x3038
|
| +#define EGL_WIDTH 0x3057
|
| +#define EGL_HEIGHT 0x3056
|
| +
|
| +#else
|
| +
|
| +#include <EGL/egl.h>
|
| +
|
| +#endif
|
| +
|
| typedef EGLDisplay (*GetDisplayProc)(EGLNativeDisplayType display_id);
|
| typedef EGLBoolean (*InitializeProc)(EGLDisplay dpy, EGLint *major, EGLint *minor);
|
| typedef EGLBoolean (*TerminateProc)(EGLDisplay dpy);
|
| @@ -48,6 +86,8 @@ static void load_command_buffer_functions() {
|
| if (!gLibrary) {
|
| #if defined _WIN32
|
| gLibrary = DynamicLoadLibrary("command_buffer_gles2.dll");
|
| +#elif defined SK_BUILD_FOR_MAC
|
| + gLibrary = DynamicLoadLibrary("libcommand_buffer_gles2.dylib");
|
| #else
|
| gLibrary = DynamicLoadLibrary("libcommand_buffer_gles2.so");
|
| #endif // defined _WIN32
|
| @@ -72,15 +112,11 @@ static void load_command_buffer_functions() {
|
| gfCreateContext && gfDestroyContext && gfMakeCurrent &&
|
| gfSwapBuffers && gfGetProcAddress;
|
|
|
| - }
|
| - }
|
| + }
|
| + }
|
| }
|
|
|
| static GrGLFuncPtr command_buffer_get_gl_proc(void* ctx, const char name[]) {
|
| - GrGLFuncPtr proc = (GrGLFuncPtr) GetProcedureAddress(ctx, name);
|
| - if (proc) {
|
| - return proc;
|
| - }
|
| if (!gfFunctionsLoadedSuccessfully) {
|
| return nullptr;
|
| }
|
| @@ -167,7 +203,7 @@ void SkCommandBufferGLContext::initializeGLContext(void* nativeWindow, const int
|
| gfChooseConfig(fDisplay, configAttribs, &surfaceConfig, 1, &numConfigs);
|
|
|
| if (nativeWindow) {
|
| - fSurface = gfCreateWindowSurface(fDisplay, surfaceConfig,
|
| + fSurface = gfCreateWindowSurface(fDisplay, surfaceConfig,
|
| (EGLNativeWindowType)nativeWindow, surfaceAttribs);
|
| } else {
|
| fSurface = gfCreatePbufferSurface(fDisplay, surfaceConfig, surfaceAttribs);
|
|
|