From 3da7df93366b05bccbd319fd4232574722866b6c Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Thu, 30 Apr 2015 13:17:32 +0200 Subject: Prevent conflicting declaration errors of GL typedefs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Including gpu/command_buffer headers in Qt code pollute by including ui/gl/gl_bindings.h which pulls in system GL headers. This will cause conflicting declaration of typedefs when included together with content/gpu and content/common/gpu headers which pull in gles2_cmd_format.h that forward declares some GL types. Although the gl_bindings.h header states in a comment that it should only be included in source files, the inline implementation of texture_manager.h and some other low-level GL integration headers nonetheless require gl_bindings.h, which unfortunately cascades through to our core layer and may cause problems when Qt code is compiled. Since getting rid of this include in Chromium's headers is not feasible due to maintenance costs, making sure that in Qt code gpu/command_buffer headers are included before content/gpu and content/common/gpu headers and guarding forward declarations in gpu/command_buffer/common/gles2_cmd_format.h should be a sufficient workaround. We can however get rid of the polluting includes in src/core/gl_surface_qt.cpp, which only requires forward declarations. This also includes a SHA1 update for the Chromium submodule. Task-number: QTBUG-44240 Change-Id: I5813a3663d36e2b565e4fd7f429add7b6f8f8a69 Reviewed-by: Michael BrĂ¼ning --- src/core/gl_surface_qt.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/core/gl_surface_qt.cpp') diff --git a/src/core/gl_surface_qt.cpp b/src/core/gl_surface_qt.cpp index 4fe2f2137..5a27aa98f 100644 --- a/src/core/gl_surface_qt.cpp +++ b/src/core/gl_surface_qt.cpp @@ -49,8 +49,6 @@ #include "base/logging.h" #include "base/memory/scoped_ptr.h" #include "content/common/gpu/image_transport_surface.h" -#include "content/common/gpu/gpu_channel_manager.h" -#include "content/common/gpu/gpu_command_buffer_stub.h" #include "ui/gl/egl_util.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_implementation.h" @@ -544,7 +542,9 @@ GLSurface::CreateViewGLSurface(gfx::AcceleratedWidget window) } // namespace gfx namespace content { -scoped_refptr ImageTransportSurface::CreateNativeSurface(GpuChannelManager* manager, GpuCommandBufferStub* stub, const gfx::GLSurfaceHandle& handle) +class GpuCommandBufferStub; +class GpuChannelManager; +scoped_refptr ImageTransportSurface::CreateNativeSurface(GpuChannelManager*, GpuCommandBufferStub*, const gfx::GLSurfaceHandle&) { QT_NOT_USED return scoped_refptr(); -- cgit v1.2.3