diff options
author | Cory Fields <foss@atlastechnologiesinc.com> | 2012-10-17 11:15:14 -0700 |
---|---|---|
committer | Cory Fields <foss@atlastechnologiesinc.com> | 2012-10-17 11:15:14 -0700 |
commit | c7951a45443603e3f0ec64ccb779b54ad0a62507 (patch) | |
tree | 41be5f688614bac9b804fa0847710612bd7aebb3 | |
parent | 5103f380b6c433c7f96df31220338358b69a0241 (diff) | |
parent | b6d2be708300b683f12dc972d33ce091e602f542 (diff) |
Merge pull request #1634 from theuni/egl-rewrite-headers
Final part of the egl refactor, back-ends control egl includes
-rw-r--r-- | xbmc/windowing/egl/EGLNativeType.h | 12 | ||||
-rw-r--r-- | xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp | 21 | ||||
-rw-r--r-- | xbmc/windowing/egl/EGLNativeTypeAmlogic.h | 4 | ||||
-rw-r--r-- | xbmc/windowing/egl/EGLNativeTypeAndroid.cpp | 21 | ||||
-rw-r--r-- | xbmc/windowing/egl/EGLNativeTypeAndroid.h | 4 | ||||
-rw-r--r-- | xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 13 | ||||
-rw-r--r-- | xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h | 7 | ||||
-rw-r--r-- | xbmc/windowing/egl/EGLWrapper.cpp | 4 | ||||
-rw-r--r-- | xbmc/windowing/egl/EGLWrapper.h | 1 |
9 files changed, 56 insertions, 31 deletions
diff --git a/xbmc/windowing/egl/EGLNativeType.h b/xbmc/windowing/egl/EGLNativeType.h index bd53a30dad..456e81e05c 100644 --- a/xbmc/windowing/egl/EGLNativeType.h +++ b/xbmc/windowing/egl/EGLNativeType.h @@ -20,10 +20,12 @@ * */ -#include <EGL/egl.h> #include "guilib/Resolution.h" #include "EGLQuirks.h" +typedef void* XBNativeDisplayType; +typedef void* XBNativeWindowType; + /*! This class provides extra functionality on top of EGL in order to facilitate the implementation-dependent functionality relating to creating, maintaining, @@ -99,10 +101,10 @@ public: virtual bool CreateNativeWindow() = 0; /*! \brief Returns the current Native Display */ - virtual bool GetNativeDisplay(EGLNativeDisplayType **nativeDisplay) const = 0; + virtual bool GetNativeDisplay(XBNativeDisplayType **nativeDisplay) const = 0; /*! \brief Returns the current Native Window */ - virtual bool GetNativeWindow(EGLNativeWindowType **nativeWindow) const = 0; + virtual bool GetNativeWindow(XBNativeWindowType **nativeWindow) const = 0; /*! \brief Destroy the Native Window @@ -142,6 +144,6 @@ public: virtual bool ShowWindow(bool show) = 0; protected: - EGLNativeDisplayType m_nativeDisplay; - EGLNativeWindowType m_nativeWindow; + XBNativeDisplayType m_nativeDisplay; + XBNativeWindowType m_nativeWindow; }; diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp index 19337eaec9..6966c6c872 100644 --- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp +++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp @@ -17,6 +17,7 @@ * <http://www.gnu.org/licenses/>. * */ +#include <EGL/egl.h> #include "EGLNativeTypeAmlogic.h" #include <stdlib.h> #include <linux/fb.h> @@ -64,9 +65,13 @@ bool CEGLNativeTypeAmlogic::CreateNativeDisplay() bool CEGLNativeTypeAmlogic::CreateNativeWindow() { #if defined(_FBDEV_WINDOW_H_) - m_nativeWindow = new fbdev_window; - m_nativeWindow->width = 1280; - m_nativeWindow->height = 720; + fbdev_window *nativeWindow = new fbdev_window; + if (!nativeWindow) + return false; + + nativeWindow->width = 1280; + nativeWindow->height = 720; + m_nativeWindow = nativeWindow; return true; #else return false; @@ -75,13 +80,17 @@ bool CEGLNativeTypeAmlogic::CreateNativeWindow() bool CEGLNativeTypeAmlogic::GetNativeDisplay(EGLNativeDisplayType **nativeDisplay) const { - *nativeDisplay = (EGLNativeDisplayType*) &m_nativeDisplay; + if (!nativeDisplay) + return false; + *nativeDisplay = (XBNativeDisplayType*) &m_nativeDisplay; return true; } -bool CEGLNativeTypeAmlogic::GetNativeWindow(EGLNativeWindowType **nativeWindow) const +bool CEGLNativeTypeAmlogic::GetNativeWindow(XBNativeWindowType **nativeWindow) const { - *nativeWindow = (EGLNativeWindowType*) &m_nativeWindow; + if (!nativeWindow) + return false; + *nativeWindow = (XBNativeWindowType*) &m_nativeWindow; return true; } diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h index 42f7a0ee37..6beb9562a6 100644 --- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h +++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h @@ -34,8 +34,8 @@ public: virtual bool CreateNativeDisplay(); virtual bool CreateNativeWindow(); - virtual bool GetNativeDisplay(EGLNativeDisplayType **nativeDisplay) const; - virtual bool GetNativeWindow(EGLNativeWindowType **nativeWindow) const; + virtual bool GetNativeDisplay(XBNativeDisplayType **nativeDisplay) const; + virtual bool GetNativeWindow(XBNativeWindowType **nativeWindow) const; virtual bool DestroyNativeWindow(); virtual bool DestroyNativeDisplay(); diff --git a/xbmc/windowing/egl/EGLNativeTypeAndroid.cpp b/xbmc/windowing/egl/EGLNativeTypeAndroid.cpp index c06f4a2833..d045efed59 100644 --- a/xbmc/windowing/egl/EGLNativeTypeAndroid.cpp +++ b/xbmc/windowing/egl/EGLNativeTypeAndroid.cpp @@ -18,6 +18,7 @@ * */ #include "system.h" +#include <EGL/egl.h> #include "EGLNativeTypeAndroid.h" #include "utils/log.h" #include "guilib/gui3d.h" @@ -65,15 +66,19 @@ bool CEGLNativeTypeAndroid::CreateNativeWindow() #endif } -bool CEGLNativeTypeAndroid::GetNativeDisplay(EGLNativeDisplayType **nativeDisplay) const +bool CEGLNativeTypeAndroid::GetNativeDisplay(XBNativeDisplayType **nativeDisplay) const { - *nativeDisplay = (EGLNativeDisplayType*) &m_nativeDisplay; + if (!nativeDisplay) + return false; + *nativeDisplay = (XBNativeDisplayType*) &m_nativeDisplay; return true; } -bool CEGLNativeTypeAndroid::GetNativeWindow(EGLNativeWindowType **nativeWindow) const +bool CEGLNativeTypeAndroid::GetNativeWindow(XBNativeWindowType **nativeWindow) const { - *nativeWindow = (EGLNativeWindowType*) &m_nativeWindow; + if (!nativeWindow) + return false; + *nativeWindow = (XBNativeWindowType*) &m_nativeWindow; return true; } @@ -90,10 +95,10 @@ bool CEGLNativeTypeAndroid::DestroyNativeWindow() bool CEGLNativeTypeAndroid::GetNativeResolution(RESOLUTION_INFO *res) const { #if defined(TARGET_ANDROID) - ANativeWindow_acquire(m_nativeWindow); - res->iWidth = ANativeWindow_getWidth(m_nativeWindow); - res->iHeight= ANativeWindow_getHeight(m_nativeWindow); - ANativeWindow_release(m_nativeWindow); + ANativeWindow_acquire((EGLNativeWindowType)m_nativeWindow); + res->iWidth = ANativeWindow_getWidth((EGLNativeWindowType)m_nativeWindow); + res->iHeight= ANativeWindow_getHeight((EGLNativeWindowType)m_nativeWindow); + ANativeWindow_release((EGLNativeWindowType)m_nativeWindow); res->fRefreshRate = 60; res->dwFlags= D3DPRESENTFLAG_PROGRESSIVE; diff --git a/xbmc/windowing/egl/EGLNativeTypeAndroid.h b/xbmc/windowing/egl/EGLNativeTypeAndroid.h index eb7afbfb6c..ec5a398415 100644 --- a/xbmc/windowing/egl/EGLNativeTypeAndroid.h +++ b/xbmc/windowing/egl/EGLNativeTypeAndroid.h @@ -34,8 +34,8 @@ public: virtual bool CreateNativeDisplay(); virtual bool CreateNativeWindow(); - virtual bool GetNativeDisplay(EGLNativeDisplayType **nativeDisplay) const; - virtual bool GetNativeWindow(EGLNativeWindowType **nativeWindow) const; + virtual bool GetNativeDisplay(XBNativeDisplayType **nativeDisplay) const; + virtual bool GetNativeWindow(XBNativeWindowType **nativeWindow) const; virtual bool DestroyNativeWindow(); virtual bool DestroyNativeDisplay(); diff --git a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp b/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp index a4b1b07669..4a2d35823e 100644 --- a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp +++ b/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp @@ -19,6 +19,7 @@ */ #include "system.h" +#include <EGL/egl.h> #include "EGLNativeTypeRaspberryPI.h" #include "utils/log.h" #include "guilib/gui3d.h" @@ -133,16 +134,20 @@ bool CEGLNativeTypeRaspberryPI::CreateNativeWindow() #endif } -bool CEGLNativeTypeRaspberryPI::GetNativeDisplay(EGLNativeDisplayType **nativeDisplay) const +bool CEGLNativeTypeRaspberryPI::GetNativeDisplay(XBNativeDisplayType **nativeDisplay) const { - *nativeDisplay = (EGLNativeDisplayType*) &m_nativeDisplay; + if (!nativeDisplay) + return false; + *nativeDisplay = (XBNativeDisplayType*) &m_nativeDisplay; return true; } -bool CEGLNativeTypeRaspberryPI::GetNativeWindow(EGLNativeWindowType **nativeWindow) const +bool CEGLNativeTypeRaspberryPI::GetNativeWindow(XBNativeDisplayType **nativeWindow) const { - *nativeWindow = (EGLNativeWindowType*) &m_nativeWindow; DLOG("CEGLNativeTypeRaspberryPI::GetNativeWindow\n"); + if (!nativeWindow) + return false; + *nativeWindow = (XBNativeWindowType*) &m_nativeWindow; return true; } diff --git a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h b/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h index 73440e22eb..f54fb583bf 100644 --- a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h +++ b/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.h @@ -21,7 +21,10 @@ */ #include "EGLNativeType.h" +#if defined(TARGET_RASPBERRY_PI) #include <semaphore.h> +#include <bcm_host.h> +#endif class DllBcmHost; class CEGLNativeTypeRaspberryPI : public CEGLNativeType @@ -37,8 +40,8 @@ public: virtual bool CreateNativeDisplay(); virtual bool CreateNativeWindow(); - virtual bool GetNativeDisplay(EGLNativeDisplayType **nativeDisplay) const; - virtual bool GetNativeWindow(EGLNativeWindowType **nativeWindow) const; + virtual bool GetNativeDisplay(XBNativeDisplayType **nativeDisplay) const; + virtual bool GetNativeWindow(XBNativeWindowType **nativeWindow) const; virtual bool DestroyNativeWindow(); virtual bool DestroyNativeDisplay(); diff --git a/xbmc/windowing/egl/EGLWrapper.cpp b/xbmc/windowing/egl/EGLWrapper.cpp index c8bb3ca22a..a5442e164f 100644 --- a/xbmc/windowing/egl/EGLWrapper.cpp +++ b/xbmc/windowing/egl/EGLWrapper.cpp @@ -191,7 +191,7 @@ bool CEGLWrapper::InitDisplay(EGLDisplay *display) //nativeDisplay can be (and usually is) NULL. Don't use if(nativeDisplay) as a test! EGLint status; EGLNativeDisplayType *nativeDisplay = NULL; - if (!m_nativeTypes->GetNativeDisplay(&nativeDisplay)) + if (!m_nativeTypes->GetNativeDisplay((XBNativeDisplayType**)&nativeDisplay)) return false; *display = eglGetDisplay(*nativeDisplay); @@ -263,7 +263,7 @@ bool CEGLWrapper::CreateSurface(EGLDisplay display, EGLConfig config, EGLSurface return false; EGLNativeWindowType *nativeWindow=NULL; - if (!m_nativeTypes->GetNativeWindow(&nativeWindow)) + if (!m_nativeTypes->GetNativeWindow((XBNativeWindowType**)&nativeWindow)) return false; *surface = eglCreateWindowSurface(display, config, *nativeWindow, NULL); diff --git a/xbmc/windowing/egl/EGLWrapper.h b/xbmc/windowing/egl/EGLWrapper.h index c0335f65f9..38649823b4 100644 --- a/xbmc/windowing/egl/EGLWrapper.h +++ b/xbmc/windowing/egl/EGLWrapper.h @@ -21,6 +21,7 @@ */ #include "guilib/Resolution.h" +#include <EGL/egl.h> class CEGLNativeType; class CEGLWrapper { |