Implement graphics abstraction layer. 20/3720/1
authorKondapally Kalyan <kalyan.kondapally@intel.com>
Tue, 28 May 2013 19:37:12 +0000 (22:37 +0300)
committerKondapally Kalyan <kalyan.kondapally@intel.com>
Tue, 28 May 2013 19:37:12 +0000 (22:37 +0300)
commit83390b2ae9de70d0d1b19aec4a3d6a3570634e44
tree4e9f8477f517684ccb5df8727a066f33b39eeee6
parentf45711ea9a0e39a9908478db469b72449350f4e3
Implement graphics abstraction layer.

This is in preparation for adding support for Wayland.

This patch introduces an abstraction layer to make it easy to add support for different platforms (X, Wayland, etc)
and do any specific optimizations as needed. Two new classes are added with this implementation,
GLPlatformContext and GLPlatformSurface.

GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
It uses GL extension ARB_robustness (when available) to detect driver resets.
It defines a simple interface for things that need to be handled by the context.

GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
It defines a simple interface for things that need to be handled by the surface.

Relevant changes in SharedPlatformSurfaceTizen, VideoSurface, etc. would be done in
followup patches.
21 files changed:
Source/WebCore/PlatformTizen.cmake
Source/WebCore/platform/graphics/GraphicsContext3D.h
Source/WebCore/platform/graphics/opengl/GLDefs.h [new file with mode: 0644]
Source/WebCore/platform/graphics/opengl/GLPlatformContext.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/opengl/GLPlatformContext.h [new file with mode: 0644]
Source/WebCore/platform/graphics/opengl/GLPlatformSurface.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLContext.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLContext.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLHelper.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLHelper.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLXSurface.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/egl/EGLXSurface.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/x/OwnPtrX11.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/x/X11Helper.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/x/X11Helper.h [new file with mode: 0644]
Source/cmake/OptionsTizen.cmake