From 710ad8ce1bd5d01ce048851d210ac3831ca17dde Mon Sep 17 00:00:00 2001 From: Andrew Knight Date: Wed, 3 Apr 2013 19:57:09 +0300 Subject: Upgrade ANGLE to DX11 Proto Upgrades ANGLE to dx11proto (dx11-MRT-support tag), which splits out support for DirectX9 & DirectX11. The DX9 codepath is used by default; CONFIG+=angle_d3d11 must be passed to the ANGLE project to build for DX11. Existing patches to ANGLE have been updated (or removed if no longer needed), and a patch has been added to make DX9/DX11 codepaths mutually exclusive. Change-Id: Ibe13befadb94f04883eca449d0ee1f0da955ff92 Reviewed-by: Oswald Buddenhagen Reviewed-by: Gunnar Sletta Reviewed-by: Friedemann Kleint Reviewed-by: Axel Waggershauser --- src/3rdparty/angle/src/libEGL/libEGL.cpp | 258 ++++++++++++++++--------------- 1 file changed, 131 insertions(+), 127 deletions(-) (limited to 'src/3rdparty/angle/src/libEGL/libEGL.cpp') diff --git a/src/3rdparty/angle/src/libEGL/libEGL.cpp b/src/3rdparty/angle/src/libEGL/libEGL.cpp index 25df1c8c24..7fca456cf5 100644 --- a/src/3rdparty/angle/src/libEGL/libEGL.cpp +++ b/src/3rdparty/angle/src/libEGL/libEGL.cpp @@ -12,21 +12,23 @@ #include "common/version.h" #include "libGLESv2/Context.h" #include "libGLESv2/Texture.h" +#include "libGLESv2/main.h" +#include "libGLESv2/renderer/SwapChain.h" #include "libEGL/main.h" #include "libEGL/Display.h" - +#include "libEGL/Surface.h" bool validateDisplay(egl::Display *display) { if (display == EGL_NO_DISPLAY) { - return error(EGL_BAD_DISPLAY, false); + return egl::error(EGL_BAD_DISPLAY, false); } if (!display->isInitialized()) { - return error(EGL_NOT_INITIALIZED, false); + return egl::error(EGL_NOT_INITIALIZED, false); } return true; @@ -41,7 +43,7 @@ bool validateConfig(egl::Display *display, EGLConfig config) if (!display->isValidConfig(config)) { - return error(EGL_BAD_CONFIG, false); + return egl::error(EGL_BAD_CONFIG, false); } return true; @@ -56,7 +58,7 @@ bool validateContext(egl::Display *display, gl::Context *context) if (!display->isValidContext(context)) { - return error(EGL_BAD_CONTEXT, false); + return egl::error(EGL_BAD_CONTEXT, false); } return true; @@ -71,7 +73,7 @@ bool validateSurface(egl::Display *display, egl::Surface *surface) if (!display->isValidSurface(surface)) { - return error(EGL_BAD_SURFACE, false); + return egl::error(EGL_BAD_SURFACE, false); } return true; @@ -103,7 +105,7 @@ EGLDisplay __stdcall eglGetDisplay(EGLNativeDisplayType display_id) } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_NO_DISPLAY); + return egl::error(EGL_BAD_ALLOC, EGL_NO_DISPLAY); } } @@ -116,24 +118,24 @@ EGLBoolean __stdcall eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor) { if (dpy == EGL_NO_DISPLAY) { - return error(EGL_BAD_DISPLAY, EGL_FALSE); + return egl::error(EGL_BAD_DISPLAY, EGL_FALSE); } egl::Display *display = static_cast(dpy); if (!display->initialize()) { - return error(EGL_NOT_INITIALIZED, EGL_FALSE); + return egl::error(EGL_NOT_INITIALIZED, EGL_FALSE); } if (major) *major = 1; if (minor) *minor = 4; - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -145,18 +147,18 @@ EGLBoolean __stdcall eglTerminate(EGLDisplay dpy) { if (dpy == EGL_NO_DISPLAY) { - return error(EGL_BAD_DISPLAY, EGL_FALSE); + return egl::error(EGL_BAD_DISPLAY, EGL_FALSE); } egl::Display *display = static_cast(dpy); display->terminate(); - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -176,20 +178,20 @@ const char *__stdcall eglQueryString(EGLDisplay dpy, EGLint name) switch (name) { case EGL_CLIENT_APIS: - return success("OpenGL_ES"); + return egl::success("OpenGL_ES"); case EGL_EXTENSIONS: return display->getExtensionString(); case EGL_VENDOR: - return success("Google Inc."); + return egl::success("Google Inc."); case EGL_VERSION: - return success("1.4 (ANGLE " VERSION_STRING ")"); + return egl::success("1.4 (ANGLE " VERSION_STRING ")"); } - return error(EGL_BAD_PARAMETER, (const char*)NULL); + return egl::error(EGL_BAD_PARAMETER, (const char*)NULL); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, (const char*)NULL); + return egl::error(EGL_BAD_ALLOC, (const char*)NULL); } } @@ -210,21 +212,21 @@ EGLBoolean __stdcall eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint co if (!num_config) { - return error(EGL_BAD_PARAMETER, EGL_FALSE); + return egl::error(EGL_BAD_PARAMETER, EGL_FALSE); } const EGLint attribList[] = {EGL_NONE}; if (!display->getConfigs(configs, attribList, config_size, num_config)) { - return error(EGL_BAD_ATTRIBUTE, EGL_FALSE); + return egl::error(EGL_BAD_ATTRIBUTE, EGL_FALSE); } - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -245,7 +247,7 @@ EGLBoolean __stdcall eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, if (!num_config) { - return error(EGL_BAD_PARAMETER, EGL_FALSE); + return egl::error(EGL_BAD_PARAMETER, EGL_FALSE); } const EGLint attribList[] = {EGL_NONE}; @@ -257,11 +259,11 @@ EGLBoolean __stdcall eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, display->getConfigs(configs, attrib_list, config_size, num_config); - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -281,14 +283,14 @@ EGLBoolean __stdcall eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint if (!display->getConfigAttrib(config, attribute, value)) { - return error(EGL_BAD_ATTRIBUTE, EGL_FALSE); + return egl::error(EGL_BAD_ATTRIBUTE, EGL_FALSE); } - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -310,14 +312,14 @@ EGLSurface __stdcall eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EG if (!IsWindow(window)) { - return error(EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE); + return egl::error(EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE); } return display->createWindowSurface(window, config, attrib_list); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_NO_SURFACE); + return egl::error(EGL_BAD_ALLOC, EGL_NO_SURFACE); } } @@ -339,7 +341,7 @@ EGLSurface __stdcall eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, c } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_NO_SURFACE); + return egl::error(EGL_BAD_ALLOC, EGL_NO_SURFACE); } } @@ -359,11 +361,11 @@ EGLSurface __stdcall eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EG UNIMPLEMENTED(); // FIXME - return success(EGL_NO_SURFACE); + return egl::success(EGL_NO_SURFACE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_NO_SURFACE); + return egl::error(EGL_BAD_ALLOC, EGL_NO_SURFACE); } } @@ -383,16 +385,16 @@ EGLBoolean __stdcall eglDestroySurface(EGLDisplay dpy, EGLSurface surface) if (surface == EGL_NO_SURFACE) { - return error(EGL_BAD_SURFACE, EGL_FALSE); + return egl::error(EGL_BAD_SURFACE, EGL_FALSE); } display->destroySurface((egl::Surface*)surface); - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -413,7 +415,7 @@ EGLBoolean __stdcall eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint if (surface == EGL_NO_SURFACE) { - return error(EGL_BAD_SURFACE, EGL_FALSE); + return egl::error(EGL_BAD_SURFACE, EGL_FALSE); } switch (attribute) @@ -470,14 +472,14 @@ EGLBoolean __stdcall eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint *value = eglSurface->isPostSubBufferSupported(); break; default: - return error(EGL_BAD_ATTRIBUTE, EGL_FALSE); + return egl::error(EGL_BAD_ATTRIBUTE, EGL_FALSE); } - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -498,23 +500,26 @@ EGLBoolean __stdcall eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surf if (surface == EGL_NO_SURFACE) { - return error(EGL_BAD_SURFACE, EGL_FALSE); + return egl::error(EGL_BAD_SURFACE, EGL_FALSE); } switch (attribute) { case EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE: - *value = (void*) eglSurface->getShareHandle(); + { + rx::SwapChain *swapchain = eglSurface->getSwapChain(); + *value = (void*) (swapchain ? swapchain->getShareHandle() : NULL); + } break; default: - return error(EGL_BAD_ATTRIBUTE, EGL_FALSE); + return egl::error(EGL_BAD_ATTRIBUTE, EGL_FALSE); } - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -528,20 +533,20 @@ EGLBoolean __stdcall eglBindAPI(EGLenum api) { case EGL_OPENGL_API: case EGL_OPENVG_API: - return error(EGL_BAD_PARAMETER, EGL_FALSE); // Not supported by this implementation + return egl::error(EGL_BAD_PARAMETER, EGL_FALSE); // Not supported by this implementation case EGL_OPENGL_ES_API: break; default: - return error(EGL_BAD_PARAMETER, EGL_FALSE); + return egl::error(EGL_BAD_PARAMETER, EGL_FALSE); } egl::setCurrentAPI(api); - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -553,11 +558,11 @@ EGLenum __stdcall eglQueryAPI(void) { EGLenum API = egl::getCurrentAPI(); - return success(API); + return egl::success(API); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -569,11 +574,11 @@ EGLBoolean __stdcall eglWaitClient(void) { UNIMPLEMENTED(); // FIXME - return success(0); + return egl::success(0); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -585,11 +590,11 @@ EGLBoolean __stdcall eglReleaseThread(void) { eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_CONTEXT, EGL_NO_SURFACE, EGL_NO_SURFACE); - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -610,14 +615,14 @@ EGLSurface __stdcall eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum bu if (buftype != EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE || !buffer) { - return error(EGL_BAD_PARAMETER, EGL_NO_SURFACE); + return egl::error(EGL_BAD_PARAMETER, EGL_NO_SURFACE); } return display->createOffscreenSurface(config, (HANDLE)buffer, attrib_list); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_NO_SURFACE); + return egl::error(EGL_BAD_ALLOC, EGL_NO_SURFACE); } } @@ -638,11 +643,11 @@ EGLBoolean __stdcall eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint UNIMPLEMENTED(); // FIXME - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -662,34 +667,34 @@ EGLBoolean __stdcall eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint if (buffer != EGL_BACK_BUFFER) { - return error(EGL_BAD_PARAMETER, EGL_FALSE); + return egl::error(EGL_BAD_PARAMETER, EGL_FALSE); } if (surface == EGL_NO_SURFACE || eglSurface->getWindowHandle()) { - return error(EGL_BAD_SURFACE, EGL_FALSE); + return egl::error(EGL_BAD_SURFACE, EGL_FALSE); } if (eglSurface->getBoundTexture()) { - return error(EGL_BAD_ACCESS, EGL_FALSE); + return egl::error(EGL_BAD_ACCESS, EGL_FALSE); } if (eglSurface->getTextureFormat() == EGL_NO_TEXTURE) { - return error(EGL_BAD_MATCH, EGL_FALSE); + return egl::error(EGL_BAD_MATCH, EGL_FALSE); } if (!glBindTexImage(eglSurface)) { - return error(EGL_BAD_MATCH, EGL_FALSE); + return egl::error(EGL_BAD_MATCH, EGL_FALSE); } - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -709,17 +714,17 @@ EGLBoolean __stdcall eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLi if (buffer != EGL_BACK_BUFFER) { - return error(EGL_BAD_PARAMETER, EGL_FALSE); + return egl::error(EGL_BAD_PARAMETER, EGL_FALSE); } if (surface == EGL_NO_SURFACE || eglSurface->getWindowHandle()) { - return error(EGL_BAD_SURFACE, EGL_FALSE); + return egl::error(EGL_BAD_SURFACE, EGL_FALSE); } if (eglSurface->getTextureFormat() == EGL_NO_TEXTURE) { - return error(EGL_BAD_MATCH, EGL_FALSE); + return egl::error(EGL_BAD_MATCH, EGL_FALSE); } gl::Texture2D *texture = eglSurface->getBoundTexture(); @@ -729,11 +734,11 @@ EGLBoolean __stdcall eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLi texture->releaseTexImage(); } - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -754,16 +759,16 @@ EGLBoolean __stdcall eglSwapInterval(EGLDisplay dpy, EGLint interval) if (draw_surface == NULL) { - return error(EGL_BAD_SURFACE, EGL_FALSE); + return egl::error(EGL_BAD_SURFACE, EGL_FALSE); } draw_surface->setSwapInterval(interval); - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -791,32 +796,32 @@ EGLContext __stdcall eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLConte case EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT: if (attribute[1] == EGL_TRUE) { - return error(EGL_BAD_CONFIG, EGL_NO_CONTEXT); // Unimplemented + return egl::error(EGL_BAD_CONFIG, EGL_NO_CONTEXT); // Unimplemented // robust_access = true; } else if (attribute[1] != EGL_FALSE) - return error(EGL_BAD_ATTRIBUTE, EGL_NO_CONTEXT); + return egl::error(EGL_BAD_ATTRIBUTE, EGL_NO_CONTEXT); break; case EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT: if (attribute[1] == EGL_LOSE_CONTEXT_ON_RESET_EXT) reset_notification = true; else if (attribute[1] != EGL_NO_RESET_NOTIFICATION_EXT) - return error(EGL_BAD_ATTRIBUTE, EGL_NO_CONTEXT); + return egl::error(EGL_BAD_ATTRIBUTE, EGL_NO_CONTEXT); break; default: - return error(EGL_BAD_ATTRIBUTE, EGL_NO_CONTEXT); + return egl::error(EGL_BAD_ATTRIBUTE, EGL_NO_CONTEXT); } } } if (client_version != 2) { - return error(EGL_BAD_CONFIG, EGL_NO_CONTEXT); + return egl::error(EGL_BAD_CONFIG, EGL_NO_CONTEXT); } if (share_context && static_cast(share_context)->isResetNotificationEnabled() != reset_notification) { - return error(EGL_BAD_MATCH, EGL_NO_CONTEXT); + return egl::error(EGL_BAD_MATCH, EGL_NO_CONTEXT); } egl::Display *display = static_cast(dpy); @@ -829,13 +834,13 @@ EGLContext __stdcall eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLConte EGLContext context = display->createContext(config, static_cast(share_context), reset_notification, robust_access); if (context) - return success(context); + return egl::success(context); else - return error(EGL_CONTEXT_LOST, EGL_NO_CONTEXT); + return egl::error(EGL_CONTEXT_LOST, EGL_NO_CONTEXT); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_NO_CONTEXT); + return egl::error(EGL_BAD_ALLOC, EGL_NO_CONTEXT); } } @@ -855,16 +860,16 @@ EGLBoolean __stdcall eglDestroyContext(EGLDisplay dpy, EGLContext ctx) if (ctx == EGL_NO_CONTEXT) { - return error(EGL_BAD_CONTEXT, EGL_FALSE); + return egl::error(EGL_BAD_CONTEXT, EGL_FALSE); } display->destroyContext(context); - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -877,22 +882,21 @@ EGLBoolean __stdcall eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface { egl::Display *display = static_cast(dpy); gl::Context *context = static_cast(ctx); - IDirect3DDevice9 *device = display->getDevice(); - if (!device || display->testDeviceLost()) + if (ctx != EGL_NO_CONTEXT && !validateContext(display, context)) { - display->notifyDeviceLost(); return EGL_FALSE; } - if (display->isDeviceLost()) + rx::Renderer *renderer = display->getRenderer(); + if (renderer->testDeviceLost(true)) { - return error(EGL_CONTEXT_LOST, EGL_FALSE); + return EGL_FALSE; } - if (ctx != EGL_NO_CONTEXT && !validateContext(display, context)) + if (renderer->isDeviceLost()) { - return EGL_FALSE; + return egl::error(EGL_CONTEXT_LOST, EGL_FALSE); } if ((draw != EGL_NO_SURFACE && !validateSurface(display, static_cast(draw))) || @@ -912,11 +916,11 @@ EGLBoolean __stdcall eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface glMakeCurrent(context, display, static_cast(draw)); - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -928,11 +932,11 @@ EGLContext __stdcall eglGetCurrentContext(void) { EGLContext context = glGetCurrentContext(); - return success(context); + return egl::success(context); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_NO_CONTEXT); + return egl::error(EGL_BAD_ALLOC, EGL_NO_CONTEXT); } } @@ -945,21 +949,21 @@ EGLSurface __stdcall eglGetCurrentSurface(EGLint readdraw) if (readdraw == EGL_READ) { EGLSurface read = egl::getCurrentReadSurface(); - return success(read); + return egl::success(read); } else if (readdraw == EGL_DRAW) { EGLSurface draw = egl::getCurrentDrawSurface(); - return success(draw); + return egl::success(draw); } else { - return error(EGL_BAD_PARAMETER, EGL_NO_SURFACE); + return egl::error(EGL_BAD_PARAMETER, EGL_NO_SURFACE); } } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_NO_SURFACE); + return egl::error(EGL_BAD_ALLOC, EGL_NO_SURFACE); } } @@ -971,11 +975,11 @@ EGLDisplay __stdcall eglGetCurrentDisplay(void) { EGLDisplay dpy = egl::getCurrentDisplay(); - return success(dpy); + return egl::success(dpy); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_NO_DISPLAY); + return egl::error(EGL_BAD_ALLOC, EGL_NO_DISPLAY); } } @@ -996,11 +1000,11 @@ EGLBoolean __stdcall eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attr UNIMPLEMENTED(); // FIXME - return success(0); + return egl::success(0); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -1012,11 +1016,11 @@ EGLBoolean __stdcall eglWaitGL(void) { UNIMPLEMENTED(); // FIXME - return success(0); + return egl::success(0); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -1028,11 +1032,11 @@ EGLBoolean __stdcall eglWaitNative(EGLint engine) { UNIMPLEMENTED(); // FIXME - return success(0); + return egl::success(0); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -1050,24 +1054,24 @@ EGLBoolean __stdcall eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) return EGL_FALSE; } - if (display->isDeviceLost()) + if (display->getRenderer()->isDeviceLost()) { - return error(EGL_CONTEXT_LOST, EGL_FALSE); + return egl::error(EGL_CONTEXT_LOST, EGL_FALSE); } if (surface == EGL_NO_SURFACE) { - return error(EGL_BAD_SURFACE, EGL_FALSE); + return egl::error(EGL_BAD_SURFACE, EGL_FALSE); } if (eglSurface->swap()) { - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } return EGL_FALSE; @@ -1087,18 +1091,18 @@ EGLBoolean __stdcall eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativ return EGL_FALSE; } - if (display->isDeviceLost()) + if (display->getRenderer()->isDeviceLost()) { - return error(EGL_CONTEXT_LOST, EGL_FALSE); + return egl::error(EGL_CONTEXT_LOST, EGL_FALSE); } UNIMPLEMENTED(); // FIXME - return success(0); + return egl::success(0); } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } } @@ -1110,7 +1114,7 @@ EGLBoolean __stdcall eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLi { if (x < 0 || y < 0 || width < 0 || height < 0) { - return error(EGL_BAD_PARAMETER, EGL_FALSE); + return egl::error(EGL_BAD_PARAMETER, EGL_FALSE); } egl::Display *display = static_cast(dpy); @@ -1121,24 +1125,24 @@ EGLBoolean __stdcall eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLi return EGL_FALSE; } - if (display->isDeviceLost()) + if (display->getRenderer()->isDeviceLost()) { - return error(EGL_CONTEXT_LOST, EGL_FALSE); + return egl::error(EGL_CONTEXT_LOST, EGL_FALSE); } if (surface == EGL_NO_SURFACE) { - return error(EGL_BAD_SURFACE, EGL_FALSE); + return egl::error(EGL_BAD_SURFACE, EGL_FALSE); } if (eglSurface->postSubBuffer(x, y, width, height)) { - return success(EGL_TRUE); + return egl::success(EGL_TRUE); } } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, EGL_FALSE); + return egl::error(EGL_BAD_ALLOC, EGL_FALSE); } return EGL_FALSE; @@ -1163,7 +1167,7 @@ __eglMustCastToProperFunctionPointerType __stdcall eglGetProcAddress(const char {"", NULL}, }; - for (int ext = 0; ext < sizeof(eglExtensions) / sizeof(Extension); ext++) + for (unsigned int ext = 0; ext < ArraySize(eglExtensions); ext++) { if (strcmp(procname, eglExtensions[ext].name) == 0) { @@ -1175,7 +1179,7 @@ __eglMustCastToProperFunctionPointerType __stdcall eglGetProcAddress(const char } catch(std::bad_alloc&) { - return error(EGL_BAD_ALLOC, (__eglMustCastToProperFunctionPointerType)NULL); + return egl::error(EGL_BAD_ALLOC, (__eglMustCastToProperFunctionPointerType)NULL); } } } -- cgit v1.2.3