refactor gl/gles includes out of system.h
authordavilla <davilla@4pi.com>
Thu, 3 May 2012 04:05:38 +0000 (00:05 -0400)
committerdavilla <davilla@4pi.com>
Thu, 3 May 2012 04:17:59 +0000 (00:17 -0400)
32 files changed:
xbmc/cores/VideoRenderers/BaseRenderer.h
xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
xbmc/cores/VideoRenderers/LinuxRendererGL.h
xbmc/cores/VideoRenderers/LinuxRendererGLES.h
xbmc/cores/VideoRenderers/OverlayRendererGL.cpp
xbmc/cores/VideoRenderers/OverlayRendererGL.h
xbmc/cores/VideoRenderers/RenderCapture.h
xbmc/cores/VideoRenderers/RenderManager.cpp
xbmc/cores/VideoRenderers/RenderManager.h
xbmc/cores/VideoRenderers/VideoShaders/VideoFilterShader.cpp
xbmc/cores/VideoRenderers/VideoShaders/VideoFilterShader.h
xbmc/cores/VideoRenderers/WinRenderer.h
xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
xbmc/guilib/FrameBufferObject.cpp
xbmc/guilib/FrameBufferObject.h
xbmc/guilib/GUITextureGL.h
xbmc/guilib/GUITextureGLES.h
xbmc/guilib/Shader.cpp
xbmc/guilib/Shader.h
xbmc/guilib/Texture.h
xbmc/guilib/gui3d.h
xbmc/music/karaoke/karaokelyricscdg.cpp
xbmc/rendering/gl/GUIWindowTestPatternGL.cpp
xbmc/rendering/gl/RenderSystemGL.cpp
xbmc/rendering/gl/RenderSystemGL.h
xbmc/rendering/gles/RenderSystemGLES.h
xbmc/system.h
xbmc/system_gl.h [new file with mode: 0644]
xbmc/utils/GLUtils.cpp
xbmc/utils/GLUtils.h
xbmc/video/VideoReferenceClock.h
xbmc/windowing/X11/WinSystemX11.h

index 10bbf1a..b6d607e 100644 (file)
@@ -42,6 +42,13 @@ typedef struct YV12Image
   unsigned bpp; /* bytes per pixel */
 } YV12Image;
 
+enum EFIELDSYNC
+{
+  FS_NONE,
+  FS_TOP,
+  FS_BOT
+};
+
 enum ERENDERFEATURE
 {
   RENDERFEATURE_GAMMA,
index c0c1541..570a0c9 100644 (file)
@@ -27,6 +27,7 @@
 
 #ifdef HAS_GL
 #include <locale.h>
+
 #include "LinuxRendererGL.h"
 #include "Application.h"
 #include "settings/Settings.h"
index 5ee1983..463b9f3 100644 (file)
  *
  */
 
+#include "system.h"
+
 #ifdef HAS_GL
+#include "system_gl.h"
 
 #include "guilib/FrameBufferObject.h"
 #include "guilib/Shader.h"
@@ -66,13 +69,6 @@ struct DRAWRECT
   float bottom;
 };
 
-enum EFIELDSYNC
-{
-  FS_NONE,
-  FS_TOP,
-  FS_BOT
-};
-
 struct YUVRANGE
 {
   int y_min, y_max;
index ec9ba34..9d6d417 100644 (file)
@@ -24,6 +24,8 @@
 
 #if HAS_GLES == 2
 
+#include "system_gl.h"
+
 #include "xbmc/guilib/FrameBufferObject.h"
 #include "xbmc/guilib/Shader.h"
 #include "settings/VideoSettings.h"
@@ -63,13 +65,6 @@ struct DRAWRECT
   float bottom;
 };
 
-enum EFIELDSYNC
-{
-  FS_NONE,
-  FS_TOP,
-  FS_BOT
-};
-
 struct YUVRANGE
 {
   int y_min, y_max;
index 5fbc6ca..bca0db7 100644 (file)
 #include "OverlayRendererUtil.h"
 #include "OverlayRendererGL.h"
 #ifdef HAS_GL
-#include "LinuxRendererGL.h"
+  #include "LinuxRendererGL.h"
 #elif HAS_GLES == 2
-#include "LinuxRendererGLES.h"
-#include "guilib/MatrixGLES.h"
+  #include "LinuxRendererGLES.h"
+  #include "guilib/MatrixGLES.h"
 #endif
 #include "RenderManager.h"
 #include "cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayImage.h"
index 265e675..0c66f52 100644 (file)
  */
 
 #pragma once
+#include "system_gl.h"
 #include "OverlayRenderer.h"
 
-#ifdef HAS_GL
-#include <GL/glew.h>
-#endif
-
 class CDVDOverlay;
 class CDVDOverlayImage;
 class CDVDOverlaySpu;
index 219016e..a5683a0 100644 (file)
@@ -174,6 +174,7 @@ class CRenderCaptureBase
 };
 
 #if defined(HAS_GL) || defined(HAS_GLES)
+#include "system_gl.h"
 
 class CRenderCaptureGL : public CRenderCaptureBase
 {
index a3692d9..3a0ccd7 100644 (file)
@@ -20,6 +20,9 @@
  */
 
 #include "system.h"
+#if defined(HAS_GL)
+  #include "system_gl.h"
+#endif
 #include "RenderManager.h"
 #include "threads/CriticalSection.h"
 #include "video/VideoReferenceClock.h"
 #include "settings/GUISettings.h"
 #include "settings/AdvancedSettings.h"
 
-#ifdef _LINUX
-#include "PlatformInclude.h"
-#endif
-
 #if defined(HAS_GL)
   #include "LinuxRendererGL.h"
 #elif HAS_GLES == 2
@@ -112,6 +111,22 @@ CXBMCRenderManager::~CXBMCRenderManager()
   m_pRenderer = NULL;
 }
 
+void CXBMCRenderManager::GetVideoRect(CRect &source, CRect &dest)
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    m_pRenderer->GetVideoRect(source, dest);
+}
+
+float CXBMCRenderManager::GetAspectRatio()
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    return m_pRenderer->GetAspectRatio();
+  else
+    return 1.0f;
+}
+
 /* These is based on CurrentHostCounter() */
 double CXBMCRenderManager::GetPresentTime()
 {
@@ -512,6 +527,13 @@ void CXBMCRenderManager::RemoveCapture(CRenderCapture* capture)
     m_captures.erase(it);
 }
 
+void CXBMCRenderManager::SetViewMode(int iViewMode)
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    m_pRenderer->SetViewMode(iViewMode);
+}
+
 void CXBMCRenderManager::FlipPage(volatile bool& bStop, double timestamp /* = 0LL*/, int source /*= -1*/, EFIELDSYNC sync /*= FS_NONE*/)
 {
   if(timestamp - GetPresentTime() > MAXPRESENTDELAY)
@@ -594,6 +616,22 @@ void CXBMCRenderManager::FlipPage(volatile bool& bStop, double timestamp /* = 0L
   }
 }
 
+void CXBMCRenderManager::Reset()
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    m_pRenderer->Reset();
+}
+
+RESOLUTION CXBMCRenderManager::GetResolution()
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    return m_pRenderer->GetResolution();
+  else
+    return RES_INVALID;
+}
+
 float CXBMCRenderManager::GetMaximumFPS()
 {
   float fps;
@@ -743,6 +781,23 @@ void CXBMCRenderManager::UpdateResolution()
 }
 
 
+unsigned int CXBMCRenderManager::GetProcessorSize()
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    return m_pRenderer->GetProcessorSize();
+  return 0;
+}
+
+// Supported pixel formats, can be called before configure
+std::vector<ERenderFormat> CXBMCRenderManager::SupportedFormats()
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    return m_pRenderer->SupportedFormats();
+  return std::vector<ERenderFormat>();
+}
+
 int CXBMCRenderManager::AddVideoPicture(DVDVideoPicture& pic)
 {
   CSharedLock lock(m_sharedSection);
@@ -798,6 +853,48 @@ int CXBMCRenderManager::AddVideoPicture(DVDVideoPicture& pic)
   return index;
 }
 
+bool CXBMCRenderManager::Supports(ERENDERFEATURE feature)
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    return m_pRenderer->Supports(feature);
+  else
+    return false;
+}
+
+bool CXBMCRenderManager::Supports(EDEINTERLACEMODE method)
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    return m_pRenderer->Supports(method);
+  else
+    return false;
+}
+
+bool CXBMCRenderManager::Supports(EINTERLACEMETHOD method)
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    return m_pRenderer->Supports(method);
+  else
+    return false;
+}
+
+bool CXBMCRenderManager::Supports(ESCALINGMETHOD method)
+{
+  CSharedLock lock(m_sharedSection);
+  if (m_pRenderer)
+    return m_pRenderer->Supports(method);
+  else
+    return false;
+}
+
+EINTERLACEMETHOD CXBMCRenderManager::AutoInterlaceMethod(EINTERLACEMETHOD mInt)
+{
+  CSharedLock lock(m_sharedSection);
+  return AutoInterlaceMethodInternal(mInt);
+}
+
 EINTERLACEMETHOD CXBMCRenderManager::AutoInterlaceMethodInternal(EINTERLACEMETHOD mInt)
 {
   if (mInt == VS_INTERLACEMETHOD_NONE)
index 16dca0b..d068ec2 100644 (file)
 
 #include <list>
 
-#if defined (HAS_GL)
-  #include "LinuxRendererGL.h"
-#elif HAS_GLES == 2
-  #include "LinuxRendererGLES.h"
-#elif defined(HAS_DX)
-  #include "WinRenderer.h"
-#elif defined(HAS_SDL)
-  #include "LinuxRenderer.h"
-#endif
-
+#include "cores/VideoRenderers/BaseRenderer.h"
+#include "guilib/Geometry.h"
+#include "guilib/Resolution.h"
 #include "threads/SharedSection.h"
 #include "threads/Thread.h"
 #include "settings/VideoSettings.h"
@@ -47,6 +40,11 @@ struct DVDVideoPicture;
 
 #define ERRORBUFFSIZE 30
 
+class CWinRenderer;
+class CLinuxRenderer;
+class CLinuxRendererGL;
+class CLinuxRendererGLES;
+
 class CXBMCRenderManager
 {
 public:
@@ -54,8 +52,8 @@ public:
   ~CXBMCRenderManager();
 
   // Functions called from the GUI
-  void GetVideoRect(CRect &source, CRect &dest) { CSharedLock lock(m_sharedSection); if (m_pRenderer) m_pRenderer->GetVideoRect(source, dest); };
-  float GetAspectRatio() { CSharedLock lock(m_sharedSection); if (m_pRenderer) return m_pRenderer->GetAspectRatio(); else return 1.0f; };
+  void GetVideoRect(CRect &source, CRect &dest);
+  float GetAspectRatio();
   void Update(bool bPauseDrawing);
   void RenderUpdate(bool clear, DWORD flags = 0, DWORD alpha = 255);
   void SetupScreenshot();
@@ -65,7 +63,7 @@ public:
   void Capture(CRenderCapture *capture, unsigned int width, unsigned int height, int flags);
   void ManageCaptures();
 
-  void SetViewMode(int iViewMode) { CSharedLock lock(m_sharedSection); if (m_pRenderer) m_pRenderer->SetViewMode(iViewMode); };
+  void SetViewMode(int iViewMode);
 
   // Functions called from mplayer
   bool Configure(unsigned int width, unsigned int height, unsigned int d_width, unsigned int d_height, float fps, unsigned flags, ERenderFormat format, unsigned extended_format);
@@ -90,67 +88,21 @@ public:
     m_overlays.AddCleanup(o);
   }
 
-  inline void Reset()
-  {
-    CSharedLock lock(m_sharedSection);
-    if (m_pRenderer)
-      m_pRenderer->Reset();
-  }
-  RESOLUTION GetResolution()
-  {
-    CSharedLock lock(m_sharedSection);
-    if (m_pRenderer)
-      return m_pRenderer->GetResolution();
-    else
-      return RES_INVALID;
-  }
+  void Reset();
+
+  RESOLUTION GetResolution();
 
   float GetMaximumFPS();
   inline bool Paused() { return m_bPauseDrawing; };
   inline bool IsStarted() { return m_bIsStarted;}
   double GetDisplayLatency() { return m_displayLatency; }
 
-  bool Supports(ERENDERFEATURE feature)
-  {
-    CSharedLock lock(m_sharedSection);
-    if (m_pRenderer)
-      return m_pRenderer->Supports(feature);
-    else
-      return false;
-  }
+  bool Supports(ERENDERFEATURE feature);
+  bool Supports(EDEINTERLACEMODE method);
+  bool Supports(EINTERLACEMETHOD method);
+  bool Supports(ESCALINGMETHOD method);
 
-  bool Supports(EDEINTERLACEMODE method)
-  {
-    CSharedLock lock(m_sharedSection);
-    if (m_pRenderer)
-      return m_pRenderer->Supports(method);
-    else
-      return false;
-  }
-
-  bool Supports(EINTERLACEMETHOD method)
-  {
-    CSharedLock lock(m_sharedSection);
-    if (m_pRenderer)
-      return m_pRenderer->Supports(method);
-    else
-      return false;
-  }
-
-  bool Supports(ESCALINGMETHOD method)
-  {
-    CSharedLock lock(m_sharedSection);
-    if (m_pRenderer)
-      return m_pRenderer->Supports(method);
-    else
-      return false;
-  }
-
-  EINTERLACEMETHOD AutoInterlaceMethod(EINTERLACEMETHOD mInt)
-  {
-    CSharedLock lock(m_sharedSection);
-    return AutoInterlaceMethodInternal(mInt);
-  }
+  EINTERLACEMETHOD AutoInterlaceMethod(EINTERLACEMETHOD mInt);
 
   double GetPresentTime();
   void  WaitPresentTime(double presenttime);
@@ -159,33 +111,21 @@ public:
 
   void UpdateResolution();
 
-  unsigned int GetProcessorSize()
-  {
-    CSharedLock lock(m_sharedSection);
-    if (m_pRenderer)
-      return m_pRenderer->GetProcessorSize();
-    return 0;
-  }
-
-  // Supported pixel formats, can be called before configure
-  std::vector<ERenderFormat> SupportedFormats()
-  {
-    CSharedLock lock(m_sharedSection);
-    if (m_pRenderer)
-      return m_pRenderer->SupportedFormats();
-    return std::vector<ERenderFormat>();
-  }
-
 #ifdef HAS_GL
-  CLinuxRendererGL *m_pRenderer;
+  CLinuxRendererGL    *m_pRenderer;
 #elif HAS_GLES == 2
-  CLinuxRendererGLES *m_pRenderer;
+  CLinuxRendererGLES  *m_pRenderer;
 #elif defined(HAS_DX)
-  CWinRenderer *m_pRenderer;
+  CWinRenderer        *m_pRenderer;
 #elif defined(HAS_SDL)
-  CLinuxRenderer *m_pRenderer;
+  CLinuxRenderer      *m_pRenderer;
 #endif
 
+  unsigned int GetProcessorSize();
+
+  // Supported pixel formats, can be called before configure
+  std::vector<ERenderFormat> SupportedFormats();
+
   void Present();
   void Recover(); // called after resolution switch if something special is needed
 
index eea1b81..3131014 100644 (file)
 */
 
 #include "system.h"
-#include "VideoFilterShader.h"
-#include "utils/log.h"
-#include "utils/GLUtils.h"
-#include "ConvolutionKernels.h"
 
+#if defined(HAS_GL) || HAS_GLES == 2
 #include <string>
 #include <math.h>
 
-#if defined(HAS_GL) || HAS_GLES == 2
-
-using namespace Shaders;
-using namespace std;
+#include "VideoFilterShader.h"
+#include "utils/log.h"
+#include "utils/GLUtils.h"
+#include "ConvolutionKernels.h"
 
 #if defined(HAS_GL)
   #define USE1DTEXTURE
@@ -39,6 +36,9 @@ using namespace std;
   #define TEXTARGET GL_TEXTURE_2D
 #endif
 
+using namespace Shaders;
+using namespace std;
+
 //////////////////////////////////////////////////////////////////////
 // BaseVideoFilterShader - base class for video filter shaders
 //////////////////////////////////////////////////////////////////////
index 37a0274..f402f52 100644 (file)
  *
  */
 
+#include "system.h"
+
 #if defined(HAS_GL) || HAS_GLES == 2
+#include "system_gl.h"
 
-#include "guilib/Shader.h"
-#include "../../../settings/VideoSettings.h"
 
-using namespace Shaders;
+#include "guilib/Shader.h"
+#include "settings/VideoSettings.h"
 
 namespace Shaders {
 
index 6d12550..527651f 100644 (file)
@@ -71,14 +71,6 @@ struct DRAWRECT
   float bottom;
 };
 
-enum EFIELDSYNC
-{
-  FS_NONE,
-  FS_TOP,
-  FS_BOT,
-};
-
-
 struct YUVRANGE
 {
   int y_min, y_max;
index 6ace347..643c635 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "system.h"
+#include "cores/VideoRenderers/RenderFlags.h"
 #include "windowing/WindowingFactory.h"
 #include "settings/AdvancedSettings.h"
 #include "settings/GUISettings.h"
index 82c1069..6d73021 100644 (file)
 #include "system.h"
 
 #if defined(HAS_GL) || HAS_GLES == 2
+#include "FrameBufferObject.h"
 #include "settings/Settings.h"
 #include "windowing/WindowingFactory.h"
-#include "FrameBufferObject.h"
-#include "utils/log.h"
 #include "utils/GLUtils.h"
+#include "utils/log.h"
 
 #if HAS_GLES == 2
 // For OpenGL ES2.0, FBO are not extensions but part of the API.
-#define glGenFramebuffersEXT           glGenFramebuffers
-#define glDeleteFramebuffersEXT                glDeleteFramebuffers
+#define GL_FRAMEBUFFER_EXT GL_FRAMEBUFFER
+#define glBindFramebufferEXT glBindFramebuffer
+#define glGenFramebuffersEXT glGenFramebuffers
+#define glDeleteFramebuffersEXT glDeleteFramebuffers
 #define glFramebufferTexture2DEXT      glFramebufferTexture2D
 #define glCheckFramebufferStatusEXT    glCheckFramebufferStatus
-#define GL_COLOR_ATTACHMENT0_EXT       GL_COLOR_ATTACHMENT0
+#define GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT0
 #define GL_FRAMEBUFFER_COMPLETE_EXT    GL_FRAMEBUFFER_COMPLETE
 #endif
 
@@ -142,4 +144,22 @@ bool CFrameBufferObject::BindToTexture(GLenum target, GLuint texid)
   return true;
 }
 
+// Begin rendering to FBO
+bool CFrameBufferObject::BeginRender()
+{
+  if (IsValid() && IsBound())
+  {
+    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_fbo);
+    return true;
+  }
+  return false;
+}
+
+// Finish rendering to FBO
+void CFrameBufferObject::EndRender()
+{
+  if (IsValid())
+    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
+}
+
 #endif
index d86182f..d816dc8 100644 (file)
@@ -25,6 +25,7 @@
 #include "system.h" // for HAS_GL
 
 #if defined(HAS_GL) || HAS_GLES == 2
+#include "system_gl.h"
 
 //
 // CFrameBufferObject
 //     glBindTexture(GL_TEXTURE_2D, fbo->Texture());
 //
 
-#if HAS_GLES == 2
-// For OpenGL ES2.0, FBO are not extensions but part of the API.
-#define glBindFramebufferEXT  glBindFramebuffer
-#define GL_FRAMEBUFFER_EXT    GL_FRAMEBUFFER
-#endif
-
 class CFrameBufferObject
 {
 public:
@@ -80,28 +75,15 @@ public:
 
   // Create a new texture and bind to it
   bool CreateAndBindToTexture(GLenum target, int width, int height, GLenum format,
-                              GLenum filter=GL_LINEAR, GLenum clamp=GL_CLAMP_TO_EDGE);
+                              GLenum filter=GL_LINEAR, GLenum clampmode=GL_CLAMP_TO_EDGE);
 
   // Return the internally created texture ID
   GLuint Texture() { return m_texid; }
 
   // Begin rendering to FBO
-  bool BeginRender()
-  {
-    if (IsValid() && IsBound())
-    {
-      glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_fbo);
-      return true;
-    }
-    return false;
-  }
-
+  bool BeginRender();
   // Finish rendering to FBO
-  void EndRender()
-  {
-    if (IsValid())
-      glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
-  }
+  void EndRender();
 
 private:
   GLuint m_fbo;
index be7ca24..e340ba3 100644 (file)
@@ -31,6 +31,8 @@
 
 #include "GUITexture.h"
 
+#include "system_gl.h"
+
 class CGUITextureGL : public CGUITextureBase
 {
 public:
index 3fdb05e..3b2acf3 100644 (file)
@@ -5,7 +5,7 @@
 
 #ifndef GUILIB_GUITEXTUREGLES_H
 #define GUILIB_GUITEXTUREGLES_H
-
+-
 #pragma once
 
 /*
@@ -31,6 +31,8 @@
 
 #include "GUITexture.h"
 
+#include "system_gl.h"
+
 class CGUITextureGLES : public CGUITextureBase
 {
 public:
index a9676f3..90f29c6 100644 (file)
 #include "system.h"
 
 #if defined(HAS_GL) || HAS_GLES == 2
+
+#include "Shader.h"
 #include "settings/Settings.h"
 #include "filesystem/File.h"
-#include "Shader.h"
 #include "utils/log.h"
 #include "utils/GLUtils.h"
 
+#ifdef HAS_GLES
+#define GLchar char
+#endif
+
 #define LOG_SIZE 1024
 
 using namespace Shaders;
index d4f387a..5467a33 100644 (file)
@@ -28,6 +28,7 @@
 #include <string>
 
 #if defined(HAS_GL) || defined(HAS_GLES)
+#include "system_gl.h"
 
 namespace Shaders {
 
index c143910..34ab720 100644 (file)
 
 #ifndef GUILIB_TEXTURE_H
 #define GUILIB_TEXTURE_H
+#include "system.h"
+#if defined(HAS_GL) || HAS_GLES == 2
+#include "system_gl.h"
+#endif
 
 #include "gui3d.h"
 #include "utils/StdString.h"
@@ -69,14 +73,18 @@ public:
   virtual void DestroyTextureObject() = 0;
   virtual void LoadToGPU() = 0;
 
-  XBMC::TexturePtr GetTextureObject() const
-  {
 #ifdef HAS_DX
+  LPDIRECT3DTEXTURE9 GetTextureObject() const
+  {
     return m_texture.Get();
+  }
 #else
+  GLuint GetTextureObject() const
+  {
     return m_texture;
-#endif
   }
+#endif
+
   unsigned char* GetPixels() const { return m_pixels; }
   unsigned int GetPitch() const { return GetPitch(m_textureWidth); }
   unsigned int GetRows() const { return GetRows(m_textureHeight); }
@@ -107,7 +115,7 @@ protected:
 #ifdef HAS_DX
   CD3DTexture m_texture;
 #else
-  XBMC::TexturePtr m_texture;
+  GLuint m_texture;
 #endif
   unsigned char* m_pixels;
   bool m_loadedToGPU;
index 65c1c46..adbee96 100644 (file)
@@ -66,40 +66,4 @@ struct D3DPalette
 
 typedef D3DPalette* LPDIRECT3DPALETTE8;
 
-#if defined(HAS_GL) || defined(HAS_GLES)
-
-namespace XBMC
-{
-  typedef void*  DevicePtr;
-  typedef GLuint SurfacePtr;
-  typedef GLuint TexturePtr;
-  typedef void* PalettePtr; // elis change it
-  typedef GLint PixelFormat; // elis change it
-}
-
-#if defined(_LINUX) && !defined(GL_GLEXT_PROTOTYPES)
-#define GL_GLEXT_PROTOTYPES
-#endif
-
-#endif // HAS_GL
-
-#ifdef HAS_DX
-
-namespace XBMC
-{
-  typedef LPDIRECT3DDEVICE9  DevicePtr;
-  typedef LPDIRECT3DTEXTURE9 TexturePtr;
-  typedef LPDIRECT3DSURFACE9 SurfacePtr;
-  typedef LPDIRECT3DPALETTE8 PalettePtr;
-};
-
-#define DELETE_TEXTURE(texture) texture->Release()
-
-#endif // HAS_DX
-
-#ifdef HAS_GLES
-
-#define GLchar char
-
-#endif
 #endif // GUILIB_GUI3D_H
index 0bf1092..edec8bd 100644 (file)
@@ -19,9 +19,9 @@
  *
  */
 
+#include "system.h"
 #include "filesystem/File.h"
 #include "settings/Settings.h"
-#include "system.h"
 #include "guilib/Texture.h"
 #include "guilib/GUITexture.h"
 #include "settings/AdvancedSettings.h"
index 03fe8f6..32a114f 100644 (file)
  */
 
 #include "system.h"
-#include "GUIWindowTestPatternGL.h"
 
 #ifdef HAS_GL
+#include "system_gl.h"
+#include "GUIWindowTestPatternGL.h"
 
 CGUIWindowTestPatternGL::CGUIWindowTestPatternGL(void) : CGUIWindowTestPattern()
 {
index be7dfea..3cb8dda 100644 (file)
 *
 */
 
-#include "RenderSystemGL.h"
+
+#include "system.h"
 
 #ifdef HAS_GL
 
+#include "RenderSystemGL.h"
 #include "guilib/GraphicContext.h"
 #include "settings/AdvancedSettings.h"
 #include "utils/log.h"
index 9c02031..fccf8cc 100644 (file)
@@ -25,6 +25,7 @@
 #pragma once
 
 #include "system.h"
+#include "system_gl.h"
 #include "rendering/RenderSystem.h"
 
 class CRenderSystemGL : public CRenderSystemBase
@@ -86,11 +87,9 @@ protected:
   int        m_glslMajor;
   int        m_glslMinor;
   
-#ifdef HAS_GL
   GLdouble   m_view[16];
   GLdouble   m_projection[16];
   GLint      m_viewPort[4];
-#endif
 };
 
 #endif // RENDER_SYSTEM_H
index d7690b6..1eb9a69 100644 (file)
@@ -24,6 +24,8 @@
 
 #pragma once
 
+#include "system.h"
+#include "system_gl.h"
 #include "rendering/RenderSystem.h"
 #include "xbmc/guilib/GUIShader.h"
 
index 8d5542a..57468a4 100644 (file)
 #define HAS_GLES 1
 #endif
 
-
-#ifdef HAS_GL
-#if defined(TARGET_WINDOWS)
-#include "GL/glew.h"
-#include <GL/gl.h>
-#include <GL/glu.h>
-//#include <GL/wglext.h>
-#elif defined(TARGET_DARWIN)
-#include <GL/glew.h>
-#include <OpenGL/gl.h>
-#elif defined(TARGET_LINUX)
-#include <GL/glew.h>
-#include <GL/gl.h>
-#endif
-#endif
-
-#if HAS_GLES == 2
-  #if defined(TARGET_DARWIN)
-    #include <OpenGLES/ES2/gl.h>
-    #include <OpenGLES/ES2/glext.h>
-  #else
-    #include <GLES2/gl2.h>
-    #include <GLES2/gl2ext.h>
-  #endif
-#endif
-
 #ifdef HAS_DVD_DRIVE
 #define HAS_CDDA_RIPPER
 #endif
diff --git a/xbmc/system_gl.h b/xbmc/system_gl.h
new file mode 100644 (file)
index 0000000..18de193
--- /dev/null
@@ -0,0 +1,52 @@
+#pragma once
+
+/*
+ *      Copyright (C) 2005-2012 Team XBMC
+ *      http://www.xbmc.org
+ *
+ *  This Program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2, or (at your option)
+ *  any later version.
+ *
+ *  This Program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with XBMC; see the file COPYING.  If not, write to
+ *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ *  http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#include "system.h"
+
+#ifdef HAS_GL
+  // always define GL_GLEXT_PROTOTYPES before include gl headers
+  #if !defined(GL_GLEXT_PROTOTYPES)
+    #define GL_GLEXT_PROTOTYPES
+  #endif
+  #if defined(TARGET_WINDOWS)
+    #include <GL/glew.h>
+    #include <GL/gl.h>
+    #include <GL/glu.h>
+  #elif defined(TARGET_LINUX)
+    #include <GL/glew.h>
+    #include <GL/gl.h>
+    #include <GL/glext.h>
+  #elif defined(TARGET_DARWIN)
+    #include <GL/glew.h>
+    #include <OpenGL/gl.h>
+    #include <OpenGL/glext.h>
+  #endif
+#elif HAS_GLES == 2
+  #if defined(TARGET_DARWIN)
+    #include <OpenGLES/ES2/gl.h>
+    #include <OpenGLES/ES2/glext.h>
+  #else
+    #include <GLES2/gl2.h>
+    #include <GLES2/gl2ext.h>
+  #endif
+#endif
index 3f89726..a0e8c23 100644 (file)
  *
  */
 
-#include "log.h"
 #include "system.h"
+
+#include "GLUtils.h"
+#include "log.h"
 #include "settings/AdvancedSettings.h"
 #include "windowing/WindowingFactory.h"
 
index 883ac4a..8548e25 100644 (file)
@@ -32,6 +32,9 @@
 // if not it's just an empty inline stub, and thus won't affect performance
 // and will be optimized out.
 
+#include "system.h"
+#include "system_gl.h"
+
 void _VerifyGLState(const char* szfile, const char* szfunction, int lineno);
 #if defined(GL_DEBUGGING) && (defined(HAS_GL) || defined(HAS_GLES))
 #define VerifyGLState() _VerifyGLState(__FILE__, __FUNCTION__, __LINE__)
index 465d313..196029f 100644 (file)
@@ -27,6 +27,7 @@
 //TODO: get rid of #ifdef hell, abstract implementations in separate classes
 
 #if defined(HAS_GLX) && defined(HAS_XRANDR)
+  #include "system_gl.h"
   #include <X11/X.h>
   #include <X11/Xlib.h>
   #include <GL/glx.h>
index a77c4d5..a69aec1 100644 (file)
  *  http://www.gnu.org/copyleft/gpl.html
  *
  */
+
+#include "system_gl.h"
+#include <GL/glx.h>
+
 #include "windowing/WinSystem.h"
 #include "utils/Stopwatch.h"
-#include <GL/glx.h>
 #include "threads/CriticalSection.h"
 
 class IDispResource;