From b336aa5feb32bd6c772580d2bd0d57e888992fd1 Mon Sep 17 00:00:00 2001 From: "spartanj@gmail.com" Date: Thu, 6 Dec 2012 18:17:51 -0300 Subject: [PATCH] Removed ugly include files from headers ( windows.h, Xlib, glew ). Glew is still included by cGL, i'm hesitant about this, i'll think about it. --- include/eepp/declares.hpp | 6 ++--- include/eepp/window/windowcontext.hpp | 17 +++++++++---- include/eepp/window/windowhandle.hpp | 12 +++------- projects/linux/ee.creator.user | 4 ++-- projects/linux/ee.files | 2 ++ src/eepp/window/backend/SDL/cinputsdl.cpp | 8 ++++--- src/eepp/window/backend/SDL2/cinputsdl2.cpp | 6 +++-- src/eepp/window/backend/SDL2/cwindowsdl2.cpp | 24 ++++++++++++------- src/eepp/window/backend/SDL2/cwindowsdl2.hpp | 6 ++--- src/eepp/window/backend/SFML/cwindowsfml.cpp | 5 ++++ .../window/backend/allegro5/cwindowal.cpp | 24 +++++++++++-------- src/eepp/window/platform/osx/cosximpl.cpp | 2 ++ src/eepp/window/platform/x11/ccursorx11.cpp | 13 ++++++++-- src/eepp/window/platform/x11/cx11impl.cpp | 13 ++++++++-- 14 files changed, 92 insertions(+), 50 deletions(-) diff --git a/include/eepp/declares.hpp b/include/eepp/declares.hpp index 40152b647..d0a576569 100644 --- a/include/eepp/declares.hpp +++ b/include/eepp/declares.hpp @@ -35,7 +35,7 @@ #define EE_PLATFORM EE_PLATFORM_LINUX #elif defined( __FreeBSD__ ) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined( __DragonFly__ ) #define EE_PLATFORM EE_PLATFORM_BSD -#elif defined( __SVR4 ) +#elif defined( __SVR4 ) || defined( __sun ) #define EE_PLATFORM EE_PLATFORM_SOLARIS #elif defined( __HAIKU__ ) || defined( __BEOS__ ) #define EE_PLATFORM EE_PLATFORM_HAIKU @@ -57,7 +57,7 @@ #if defined ( linux ) || defined( __linux__ ) \ || defined( __FreeBSD__ ) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined( __DragonFly__ ) \ - || defined( __SVR4 ) + || defined( __SVR4 ) || defined( __sun ) #if !defined( EE_GLES1 ) && !defined( EE_GLES2 ) @@ -68,7 +68,7 @@ #endif //! Since EE just use basic POSIX stuff, declare as POSIX some OS that are mostly POSIX-compliant -#if defined ( linux ) || defined( __linux__ ) || defined( __FreeBSD__ ) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined( __DragonFly__ ) || defined( __SVR4 ) || defined( __APPLE_CC__ ) || defined ( __APPLE__ ) || defined( __HAIKU__ ) || defined( __BEOS__ ) +#if defined ( linux ) || defined( __linux__ ) || defined( __FreeBSD__ ) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined( __DragonFly__ ) || defined( __SVR4 ) || defined( __sun ) || defined( __APPLE_CC__ ) || defined ( __APPLE__ ) || defined( __HAIKU__ ) || defined( __BEOS__ ) #define EE_PLATFORM_POSIX #endif diff --git a/include/eepp/window/windowcontext.hpp b/include/eepp/window/windowcontext.hpp index 3ee778efe..1e33ce7c2 100644 --- a/include/eepp/window/windowcontext.hpp +++ b/include/eepp/window/windowcontext.hpp @@ -10,15 +10,22 @@ #elif defined( EE_X11_PLATFORM ) - #include - #undef Window - #undef Display - #undef Cursor + #ifdef __sun + struct __glXContextRec; + typedef struct __glXContextRec *GLXContext; + #else + struct __GLXcontextRec; + typedef struct __GLXcontextRec *GLXContext; + #endif + typedef GLXContext eeWindowContex; #elif EE_PLATFORM == EE_PLATFORM_MACOSX - #include + struct __AGLContextRec; + + typedef struct __AGLContextRec *AGLContext; + typedef AGLContext eeWindowContex; #endif diff --git a/include/eepp/window/windowhandle.hpp b/include/eepp/window/windowhandle.hpp index 925ea1721..7b5aed922 100644 --- a/include/eepp/window/windowhandle.hpp +++ b/include/eepp/window/windowhandle.hpp @@ -9,19 +9,13 @@ typedef HWND__* eeWindowHandle; #elif defined( EE_X11_PLATFORM ) - #include - #include - #include - #undef Window - #undef Display - #undef Cursor - + typedef unsigned long X11Window; typedef unsigned long X11Cursor; - typedef Display * eeWindowHandle; + struct _XDisplay; + typedef struct _XDisplay * eeWindowHandle; - #elif EE_PLATFORM == EE_PLATFORM_MACOSX typedef void * eeWindowHandle; // NSWindow * #else diff --git a/projects/linux/ee.creator.user b/projects/linux/ee.creator.user index ff1a7a3eb..b8d5b7839 100644 --- a/projects/linux/ee.creator.user +++ b/projects/linux/ee.creator.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget @@ -57,7 +57,7 @@ false - -j4 -e DEBUGBUILD=yes BACKEND_SDL=yes test + -j4 -e DEBUGBUILD=yes BACKENDS_ALL=yes test make true diff --git a/projects/linux/ee.files b/projects/linux/ee.files index 64de25010..5bed5d021 100644 --- a/projects/linux/ee.files +++ b/projects/linux/ee.files @@ -569,3 +569,5 @@ ../../include/eepp/system/filesystem.hpp ../../src/eepp/system/filesystem.cpp ../../include/eepp/graphics/glhelper.hpp +../../include/eepp/window/windowhandle.hpp +../../include/eepp/window/windowcontext.hpp diff --git a/src/eepp/window/backend/SDL/cinputsdl.cpp b/src/eepp/window/backend/SDL/cinputsdl.cpp index 63e224ff9..26b7b0947 100644 --- a/src/eepp/window/backend/SDL/cinputsdl.cpp +++ b/src/eepp/window/backend/SDL/cinputsdl.cpp @@ -1,6 +1,4 @@ -#include -#include -#include +#include #ifdef EE_BACKEND_SDL_1_2 @@ -10,6 +8,10 @@ #include #endif +#include +#include +#include + namespace EE { namespace Window { namespace Backend { namespace SDL { cInputSDL::cInputSDL( cWindow * window ) : diff --git a/src/eepp/window/backend/SDL2/cinputsdl2.cpp b/src/eepp/window/backend/SDL2/cinputsdl2.cpp index 0818285cb..e90d068f2 100644 --- a/src/eepp/window/backend/SDL2/cinputsdl2.cpp +++ b/src/eepp/window/backend/SDL2/cinputsdl2.cpp @@ -1,10 +1,12 @@ +#include + +#ifdef EE_BACKEND_SDL2 + #include #include #include #include -#ifdef EE_BACKEND_SDL2 - namespace EE { namespace Window { namespace Backend { namespace SDL2 { cInputSDL::cInputSDL( cWindow * window ) : diff --git a/src/eepp/window/backend/SDL2/cwindowsdl2.cpp b/src/eepp/window/backend/SDL2/cwindowsdl2.cpp index 16633d6eb..570fcfd76 100644 --- a/src/eepp/window/backend/SDL2/cwindowsdl2.cpp +++ b/src/eepp/window/backend/SDL2/cwindowsdl2.cpp @@ -1,7 +1,12 @@ -#include +#include #ifdef EE_BACKEND_SDL2 +#if EE_PLATFORM == EE_PLATFORM_WIN || EE_PLATFORM == EE_PLATFORM_MACOSX || defined( EE_X11_PLATFORM ) + #include +#endif + +#include #include #include #include @@ -20,7 +25,8 @@ namespace EE { namespace Window { namespace Backend { namespace SDL2 { cWindowSDL::cWindowSDL( WindowSettings Settings, ContextSettings Context ) : cWindow( Settings, Context, eeNew( cClipboardSDL, ( this ) ), eeNew( cInputSDL, ( this ) ), eeNew( cCursorManagerSDL, ( this ) ) ), mSDLWindow( NULL ), - mGLContext( NULL ) + mGLContext( NULL ), + mWMinfo( eeNew( SDL_SysWMinfo, () ) ) { Create( Settings, Context ); } @@ -29,6 +35,8 @@ cWindowSDL::~cWindowSDL() { if ( NULL != mGLContext ) { SDL_GL_DeleteContext( mGLContext ); } + + eeSAFE_DELETE( mWMinfo ); } bool cWindowSDL::Create( WindowSettings Settings, ContextSettings Context ) { @@ -172,12 +180,12 @@ std::string cWindowSDL::GetVersion() { void cWindowSDL::CreatePlatform() { eeSAFE_DELETE( mPlatform ); #if EE_PLATFORM == EE_PLATFORM_WIN || EE_PLATFORM == EE_PLATFORM_MACOSX || defined( EE_X11_PLATFORM ) - SDL_VERSION( &mWMinfo.version ); - SDL_GetWindowWMInfo ( mSDLWindow, &mWMinfo ); + SDL_VERSION( &mWMinfo->version ); + SDL_GetWindowWMInfo ( mSDLWindow, mWMinfo ); #endif #if defined( EE_X11_PLATFORM ) - mPlatform = eeNew( Platform::cX11Impl, ( this, mWMinfo.info.x11.display, mWMinfo.info.x11.window, mWMinfo.info.x11.window, NULL, NULL ) ); + mPlatform = eeNew( Platform::cX11Impl, ( this, mWMinfo->info.x11.display, mWMinfo->info.x11.window, mWMinfo->info.x11.window, NULL, NULL ) ); #elif EE_PLATFORM == EE_PLATFORM_WIN mPlatform = eeNew( Platform::cWinImpl, ( this, GetWindowHandler() ) ); #elif EE_PLATFORM == EE_PLATFORM_MACOSX @@ -382,11 +390,11 @@ void cWindowSDL::SetGamma( eeFloat Red, eeFloat Green, eeFloat Blue ) { eeWindowHandle cWindowSDL::GetWindowHandler() { #if EE_PLATFORM == EE_PLATFORM_WIN - return mWMinfo.info.win.window; + return mWMinfo->info.win.window; #elif defined( EE_X11_PLATFORM ) - return mWMinfo.info.x11.display; + return mWMinfo->info.x11.display; #elif EE_PLATFORM == EE_PLATFORM_MACOSX - return mWMinfo.info.cocoa.window; + return mWMinfo->info.cocoa.window; #else return 0; #endif diff --git a/src/eepp/window/backend/SDL2/cwindowsdl2.hpp b/src/eepp/window/backend/SDL2/cwindowsdl2.hpp index 252ecd4f7..18c0ebbd8 100644 --- a/src/eepp/window/backend/SDL2/cwindowsdl2.hpp +++ b/src/eepp/window/backend/SDL2/cwindowsdl2.hpp @@ -8,9 +8,7 @@ #include -#if EE_PLATFORM == EE_PLATFORM_WIN || EE_PLATFORM == EE_PLATFORM_MACOSX || defined( EE_X11_PLATFORM ) - #include -#endif +class SDL_SysWMinfo; namespace EE { namespace Window { namespace Backend { namespace SDL2 { @@ -64,7 +62,7 @@ class EE_API cWindowSDL : public cWindow { SDL_GLContext mGLContext; #if EE_PLATFORM == EE_PLATFORM_WIN || EE_PLATFORM == EE_PLATFORM_MACOSX || defined( EE_X11_PLATFORM ) - SDL_SysWMinfo mWMinfo; + SDL_SysWMinfo * mWMinfo; #endif eeVector2i mWinPos; diff --git a/src/eepp/window/backend/SFML/cwindowsfml.cpp b/src/eepp/window/backend/SFML/cwindowsfml.cpp index 9bdf5baa4..be1ebfcc1 100644 --- a/src/eepp/window/backend/SFML/cwindowsfml.cpp +++ b/src/eepp/window/backend/SFML/cwindowsfml.cpp @@ -2,6 +2,11 @@ #ifdef EE_BACKEND_SFML_ACTIVE +#if defined( EE_X11_PLATFORM ) + #include +#endif +#undef None + #include #include diff --git a/src/eepp/window/backend/allegro5/cwindowal.cpp b/src/eepp/window/backend/allegro5/cwindowal.cpp index 9203202de..5d550f5c3 100644 --- a/src/eepp/window/backend/allegro5/cwindowal.cpp +++ b/src/eepp/window/backend/allegro5/cwindowal.cpp @@ -5,16 +5,6 @@ #include #include -#include -#include -#include -#include -#include - -#include -#include -#include -#include #if EE_PLATFORM == EE_PLATFORM_WIN #include @@ -27,6 +17,20 @@ #include #include #include +#undef Cursor +#undef Window + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include namespace EE { namespace Window { namespace Backend { namespace Al { diff --git a/src/eepp/window/platform/osx/cosximpl.cpp b/src/eepp/window/platform/osx/cosximpl.cpp index ccdf1def7..48c4fad29 100644 --- a/src/eepp/window/platform/osx/cosximpl.cpp +++ b/src/eepp/window/platform/osx/cosximpl.cpp @@ -2,6 +2,8 @@ #if EE_PLATFORM == EE_PLATFORM_MACOSX +#include + namespace EE { namespace Window { namespace Platform { cOSXImpl::cOSXImpl( cWindow * window ) : diff --git a/src/eepp/window/platform/x11/ccursorx11.cpp b/src/eepp/window/platform/x11/ccursorx11.cpp index 59533e4d7..a1fb20bf9 100644 --- a/src/eepp/window/platform/x11/ccursorx11.cpp +++ b/src/eepp/window/platform/x11/ccursorx11.cpp @@ -1,8 +1,17 @@ -#include -#include +#include #if defined( EE_X11_PLATFORM ) +#include +#include +#include +#undef Window +#undef Display +#undef Cursor + +#include +#include + namespace EE { namespace Window { namespace Platform { cCursorX11::cCursorX11( cTexture * tex, const eeVector2i& hotspot, const std::string& name, Window::cWindow * window ) : diff --git a/src/eepp/window/platform/x11/cx11impl.cpp b/src/eepp/window/platform/x11/cx11impl.cpp index db26cae09..1265d216d 100644 --- a/src/eepp/window/platform/x11/cx11impl.cpp +++ b/src/eepp/window/platform/x11/cx11impl.cpp @@ -1,8 +1,17 @@ -#include -#include +#include #if defined( EE_X11_PLATFORM ) +#include +#include +#include +#undef Window +#undef Display +#undef Cursor + +#include +#include + using namespace EE::Window::Cursor; namespace EE { namespace Window { namespace Platform {