diff --git a/include/eepp/graphics.hpp b/include/eepp/graphics.hpp index 9077c12c8..c4f879c07 100644 --- a/include/eepp/graphics.hpp +++ b/include/eepp/graphics.hpp @@ -1,6 +1,7 @@ #ifndef EEPP_GRAPHICS_HPP #define EEPP_GRAPHICS_HPP +#include #include #include #include diff --git a/include/eepp/graphics/framebuffer.hpp b/include/eepp/graphics/framebuffer.hpp index b478a13b8..e61c71180 100644 --- a/include/eepp/graphics/framebuffer.hpp +++ b/include/eepp/graphics/framebuffer.hpp @@ -3,7 +3,7 @@ #include #include -#include +#include namespace EE { namespace Window { class Window; } } diff --git a/include/eepp/window/view.hpp b/include/eepp/graphics/view.hpp similarity index 95% rename from include/eepp/window/view.hpp rename to include/eepp/graphics/view.hpp index 2f86f69e3..17c015624 100755 --- a/include/eepp/window/view.hpp +++ b/include/eepp/graphics/view.hpp @@ -1,11 +1,11 @@ -#ifndef EE_WINDOWCVIEW_H -#define EE_WINDOWCVIEW_H +#ifndef EE_GRAPHICS_VIEW_H +#define EE_GRAPHICS_VIEW_H #include #include using namespace EE::Math; -namespace EE { namespace Window { +namespace EE { namespace Graphics { /** @brief The class defines a view like a 2D camera ( position, size, move, scale ). Basically is a 2D proyection in pixels seted over a viewport. */ class EE_API View { diff --git a/include/eepp/window.hpp b/include/eepp/window.hpp index 5f0f7d99c..4d8386649 100644 --- a/include/eepp/window.hpp +++ b/include/eepp/window.hpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #include #include diff --git a/include/eepp/window/input.hpp b/include/eepp/window/input.hpp index 2bd1b7ab2..659019545 100644 --- a/include/eepp/window/input.hpp +++ b/include/eepp/window/input.hpp @@ -1,6 +1,7 @@ #ifndef EE_WINDOWCINPUT_H #define EE_WINDOWCINPUT_H +#include #include #include #include @@ -9,9 +10,9 @@ #include #include -namespace EE { namespace Window { +using namespace EE::Graphics; -class View; +namespace EE { namespace Window { /** @brief The basic input class. For mouse and keyboard. */ class EE_API Input { diff --git a/include/eepp/window/window.hpp b/include/eepp/window/window.hpp index fa2325c66..0506043ac 100644 --- a/include/eepp/window/window.hpp +++ b/include/eepp/window/window.hpp @@ -2,7 +2,7 @@ #define EE_WINDOWCWINDOW_HPP #include -#include +#include #include namespace EE { namespace Window { @@ -281,7 +281,7 @@ class EE_API Window { /** Set the current active view @param View New view to use (pass GetDefaultView() to set the default view) */ - void setView( const View& View ); + void setView( const View& view ); /** Get the current view */ const View& getView() const; diff --git a/projects/linux/ee.files b/projects/linux/ee.files index 49b3eea5d..b666562ff 100644 --- a/projects/linux/ee.files +++ b/projects/linux/ee.files @@ -429,7 +429,7 @@ ../../include/eepp/window/inputhelper.hpp ../../include/eepp/window/inputevent.hpp ../../include/eepp/window/window.hpp -../../include/eepp/window/view.hpp +../../include/eepp/graphics/view.hpp ../../include/eepp/window/cursorhelper.hpp ../../include/eepp/window/platformimpl.hpp ../../include/eepp/window/joystickmanager.hpp @@ -449,7 +449,7 @@ ../../src/eepp/window/inputhelper.cpp ../../src/eepp/window/platformhelper.hpp ../../src/eepp/window/window.cpp -../../src/eepp/window/view.cpp +../../src/eepp/graphics/view.cpp ../../src/eepp/window/platformimpl.cpp ../../src/eepp/window/joystickmanager.cpp ../../src/eepp/window/joystick.cpp diff --git a/src/eepp/window/view.cpp b/src/eepp/graphics/view.cpp similarity index 97% rename from src/eepp/window/view.cpp rename to src/eepp/graphics/view.cpp index ca29151e9..9b62c5622 100755 --- a/src/eepp/window/view.cpp +++ b/src/eepp/graphics/view.cpp @@ -1,6 +1,6 @@ -#include +#include -namespace EE { namespace Window { +namespace EE { namespace Graphics { View::View() : mCenter (), diff --git a/src/eepp/ui/uimanager.cpp b/src/eepp/ui/uimanager.cpp index 8f65513d7..91bacc575 100644 --- a/src/eepp/ui/uimanager.cpp +++ b/src/eepp/ui/uimanager.cpp @@ -279,7 +279,15 @@ UINode * UIManager::getDownControl() const { void UIManager::draw() { GlobalBatchRenderer::instance()->draw(); + + const View& prevView = mWindow->getView(); + + mWindow->setView( mWindow->getDefaultView() ); + mControl->internalDraw(); + + mWindow->setView( prevView ); + GlobalBatchRenderer::instance()->draw(); } diff --git a/src/eepp/window/input.cpp b/src/eepp/window/input.cpp index 029647bbb..0c394b4fa 100644 --- a/src/eepp/window/input.cpp +++ b/src/eepp/window/input.cpp @@ -1,5 +1,4 @@ #include -#include namespace EE { namespace Window { diff --git a/src/eepp/window/window.cpp b/src/eepp/window/window.cpp index d37577d81..290915de7 100644 --- a/src/eepp/window/window.cpp +++ b/src/eepp/window/window.cpp @@ -49,6 +49,7 @@ Window::Window( WindowSettings Settings, ContextSettings Context, Clipboard * Cl mInput( Input ), mCursorManager( CursorManager ), mPlatform( NULL ), + mCurrentView( NULL ), mNumCallBacks( 0 ) { mWindow.WindowConfig = Settings; @@ -159,14 +160,18 @@ Rect Window::getViewport( const View& view ) { static_cast(0.5f + height * viewport.Bottom)); } -void Window::setView( const View& View ) { - mCurrentView = &View; +void Window::setView( const View& view ) { + const View * viewPtr = &view; - Rect viewport = getViewport( *mCurrentView ); + if ( viewPtr != mCurrentView ) { + mCurrentView = viewPtr; - setViewport( viewport.Left, viewport.Top, viewport.Right, viewport.Bottom ); + Rect viewport = getViewport( *mCurrentView ); - setProjection( View.getTransform() ); + setViewport( viewport.Left, viewport.Top, viewport.Right, viewport.Bottom ); + + setProjection( viewPtr->getTransform() ); + } } const View& Window::getDefaultView() const { @@ -179,7 +184,7 @@ const View& Window::getView() const { void Window::createView() { mDefaultView.reset( Rectf( 0, 0, mWindow.WindowConfig.Width, mWindow.WindowConfig.Height ) ); - mCurrentView = &mDefaultView; + setView( mDefaultView ); } void Window::setup2D( const bool& KeepView ) {