Home | History | Annotate | Download | only in gpu
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_GPU_X_UTIL_H_
      6 #define CHROME_GPU_X_UTIL_H_
      7 
      8 // Some X-Windows specific stuff. This can be included on any platform, and will
      9 // be a NOP on non-Linux ones.
     10 
     11 #include "build/build_config.h"
     12 #include "content/common/gpu/gpu_config.h"
     13 
     14 #if defined(USE_X11)
     15 
     16 namespace content {
     17 
     18 // Forward declares ------------------------------------------------------------
     19 //
     20 // X Windows headers do a lot of evil stuff, like "#define Status int" which
     21 // will cause many problems when combined with our other header files (like
     22 // ones that define a class local enum called "Status."
     23 //
     24 // These definitions are not Kosher, but allow us to remove this dependency and
     25 // actually compile X at all.
     26 
     27 typedef unsigned long XID;
     28 
     29 extern "C" {
     30 
     31 typedef struct _XDisplay Display;
     32 typedef struct __GLXcontextRec *GLXContext;
     33 
     34 }  // extern "C"
     35 
     36 // Utils -----------------------------------------------------------------------
     37 
     38 // scoped_ptr functor for XFree(). Use as follows:
     39 //   scoped_ptr_mallox<XVisualInfo, ScopedPtrXFree> foo(...);
     40 // where "XVisualInfo" is any X type that is freed with XFree.
     41 class ScopedPtrXFree {
     42  public:
     43   void operator()(void* x) const;
     44 };
     45 
     46 }  // namespace content
     47 
     48 #endif  // USE_X11
     49 
     50 #endif  // CHROME_GPU_X_UTIL_H_
     51