From 24b19f307751b6ab25386c0cad838c38aef4a777 Mon Sep 17 00:00:00 2001 From: kervala Date: Thu, 4 Nov 2010 22:14:47 +0100 Subject: [PATCH] Fixed: #1034 Implement CCustomMouse for Linux --- code/nel/src/3d/driver/direct3d/driver_direct3d.cpp | 2 +- code/nel/src/3d/driver/direct3d/driver_direct3d.h | 5 +++-- code/nel/src/3d/driver/direct3d/driver_direct3d_inputs.cpp | 6 ++++++ code/nel/src/3d/driver/opengl/driver_opengl.cpp | 2 +- code/nel/src/3d/driver/opengl/driver_opengl.h | 5 +++-- code/nel/src/3d/driver/opengl/driver_opengl_inputs.cpp | 6 ++++++ code/nel/src/3d/driver_user.cpp | 7 +++++++ .../client/src/interface_v3/input_handler_manager.cpp | 1 - code/ryzom/client/src/interface_v3/view_renderer.cpp | 2 +- 9 files changed, 28 insertions(+), 8 deletions(-) diff --git a/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp b/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp index 50c2f5c15..8388651c8 100644 --- a/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp +++ b/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp @@ -173,7 +173,7 @@ CDriverD3D::CDriverD3D() _CurrRot = 0; _CurrHotSpotX = 0; _CurrHotSpotY = 0; - _CursorScale = 0.85f; + _CursorScale = 1.f; _UserViewMtx.identity(); _UserModelMtx.identity(); diff --git a/code/nel/src/3d/driver/direct3d/driver_direct3d.h b/code/nel/src/3d/driver/direct3d/driver_direct3d.h index fae4d6dee..5f2857de1 100644 --- a/code/nel/src/3d/driver/direct3d/driver_direct3d.h +++ b/code/nel/src/3d/driver/direct3d/driver_direct3d.h @@ -923,14 +923,15 @@ public: // see if system cursor is currently captured virtual bool isSystemCursorCaptured(); - virtual void setHardwareCursorScale(float scale) { _CursorScale = scale; } - // Add a new cursor (name is case unsensitive) virtual void addCursor(const std::string &name, const NLMISC::CBitmap &bitmap); // Display a cursor from its name (case unsensitive) virtual void setCursor(const std::string &name, NLMISC::CRGBA col, uint8 rot, sint hotSpotX, sint hotSpotY, bool forceRebuild = false); + // Change default scale for all cursors + virtual void setCursorScale(float scale); + virtual NLMISC::IMouseDevice *enableLowLevelMouse(bool enable, bool exclusive); virtual NLMISC::IKeyboardDevice *enableLowLevelKeyboard(bool enable); virtual NLMISC::IInputDeviceManager *getLowLevelInputDeviceManager(); diff --git a/code/nel/src/3d/driver/direct3d/driver_direct3d_inputs.cpp b/code/nel/src/3d/driver/direct3d/driver_direct3d_inputs.cpp index 038ae5ea7..e64585ad7 100644 --- a/code/nel/src/3d/driver/direct3d/driver_direct3d_inputs.cpp +++ b/code/nel/src/3d/driver/direct3d/driver_direct3d_inputs.cpp @@ -300,6 +300,12 @@ void CDriverD3D::setCursor(const std::string &name, NLMISC::CRGBA col, uint8 rot } +// ************************************************************************************* +void CDriverD3D::setCursorScale(float scale) +{ + _CursorScale = scale; +} + // ************************************************************************************* nlCursor CDriverD3D::buildCursor(const CBitmap &src, NLMISC::CRGBA col, uint8 rot, sint hotSpotX, sint hotSpotY) { diff --git a/code/nel/src/3d/driver/opengl/driver_opengl.cpp b/code/nel/src/3d/driver/opengl/driver_opengl.cpp index cf9a911da..38a6c3cff 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl.cpp @@ -223,7 +223,7 @@ CDriverGL::CDriverGL() _CurrRot = 0; _CurrHotSpotX = 0; _CurrHotSpotY = 0; - _CursorScale = 0.85f; + _CursorScale = 1.f; _MouseCaptured = false; _NeedToRestaureGammaRamp = false; diff --git a/code/nel/src/3d/driver/opengl/driver_opengl.h b/code/nel/src/3d/driver/opengl/driver_opengl.h index 9b4dcfb9e..56f6198dc 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl.h +++ b/code/nel/src/3d/driver/opengl/driver_opengl.h @@ -523,14 +523,15 @@ public: // see if system cursor is currently captured virtual bool isSystemCursorCaptured(); - virtual void setHardwareCursorScale(float scale) { _CursorScale = scale; } - // Add a new cursor (name is case unsensitive) virtual void addCursor(const std::string &name, const NLMISC::CBitmap &bitmap); // Display a cursor from its name (case unsensitive) virtual void setCursor(const std::string &name, NLMISC::CRGBA col, uint8 rot, sint hotSpotX, sint hotSpotY, bool forceRebuild = false); + // Change default scale for all cursors + virtual void setCursorScale(float scale); + virtual NLMISC::IMouseDevice *enableLowLevelMouse(bool enable, bool exclusive); virtual NLMISC::IKeyboardDevice *enableLowLevelKeyboard(bool enable); diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_inputs.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_inputs.cpp index 5af8a057a..7dd9363d1 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl_inputs.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl_inputs.cpp @@ -367,6 +367,12 @@ void CDriverGL::setCursor(const std::string &name, NLMISC::CRGBA col, uint8 rot, } +// ************************************************************************************* +void CDriverGL::setCursorScale(float scale) +{ + _CursorScale = scale; +} + // ************************************************************************************* nlCursor CDriverGL::buildCursor(const CBitmap &src, NLMISC::CRGBA col, uint8 rot, sint hotSpotX, sint hotSpotY) { diff --git a/code/nel/src/3d/driver_user.cpp b/code/nel/src/3d/driver_user.cpp index b26a4b951..6d2bdcb53 100644 --- a/code/nel/src/3d/driver_user.cpp +++ b/code/nel/src/3d/driver_user.cpp @@ -1664,6 +1664,13 @@ void CDriverUser::setCursor(const std::string &name, NLMISC::CRGBA col, uint8 _Driver->setCursor(name, col, rot, hotSpotX, hotSpotY, forceRebuild); } +void CDriverUser::setCursorScale(float scale) +{ + NL3D_HAUTO_UI_DRIVER; + + _Driver->setCursorScale(scale); +} + // *************************************************************************** // *************************************************************************** // Async Texture loading mgt diff --git a/code/ryzom/client/src/interface_v3/input_handler_manager.cpp b/code/ryzom/client/src/interface_v3/input_handler_manager.cpp index 90adc44a3..ef235ce60 100644 --- a/code/ryzom/client/src/interface_v3/input_handler_manager.cpp +++ b/code/ryzom/client/src/interface_v3/input_handler_manager.cpp @@ -157,7 +157,6 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event) _MouseButtonsReleased = noButton; _MouseButtonsState = noButton; _Focus = false; - // Driver->setFocus(false); if (!_SkipInterfaceManager) { diff --git a/code/ryzom/client/src/interface_v3/view_renderer.cpp b/code/ryzom/client/src/interface_v3/view_renderer.cpp index 35443d14c..6a300275e 100644 --- a/code/ryzom/client/src/interface_v3/view_renderer.cpp +++ b/code/ryzom/client/src/interface_v3/view_renderer.cpp @@ -729,7 +729,7 @@ void CViewRenderer::loadTextures (const std::string &textureFileName, const std: _GlobalTextures.push_back (gt); -// Driver->setHardwareCursorScale(ClientCfg.HardwareCursorScale); + Driver->setCursorScale(ClientCfg.HardwareCursorScale); char bufTmp[256], tgaName[256]; string sTGAname;