Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/editors/transform/transform_manipulator.c2
-rw-r--r--source/blender/windowmanager/WM_api.h2
-rw-r--r--source/blender/windowmanager/intern/wm_window.c14
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp8
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderCanvas.h2
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderGL.cpp28
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderGL.h8
7 files changed, 39 insertions, 25 deletions
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index a4e093644c3..fe79e9b4285 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -1563,7 +1563,7 @@ void BIF_draw_manipulator(const bContext *C)
break;
}
- mul_mat3_m4_fl((float *)rv3d->twmat, get_manipulator_drawsize(ar));
+ mul_mat3_m4_fl(rv3d->twmat, get_manipulator_drawsize(ar));
}
if(v3d->twflag & V3D_DRAW_MANIPULATOR) {
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index a784a1d560a..554418e6483 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -86,6 +86,8 @@ void WM_timecursor (struct wmWindow *win, int nr);
void *WM_paint_cursor_activate(struct wmWindowManager *wm, int (*poll)(struct bContext *C), void (*draw)(struct bContext *C, int, int, void *customdata), void *customdata);
void WM_paint_cursor_end(struct wmWindowManager *wm, void *handle);
+void WM_cursor_warp (struct wmWindow *win, int x, int y);
+
/* keyconfig and keymap */
wmKeyConfig *WM_keyconfig_add (struct wmWindowManager *wm, char *idname);
void WM_keyconfig_free (struct wmKeyConfig *keyconf);
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index ae6d9ddb425..a4a22f347b7 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -972,3 +972,17 @@ void WM_setprefsize(int stax, int stay, int sizx, int sizy)
prefsizy= sizy;
}
+/* This function requires access to the GHOST_SystemHandle (g_system) */
+void WM_cursor_warp(wmWindow *win, int x, int y)
+{
+ if (win && win->ghostwin) {
+ int oldx=x, oldy=y;
+
+ y= win->sizey -y - 1;
+ GHOST_ClientToScreen(win->ghostwin, x, y, &x, &y);
+ GHOST_SetCursorPosition(g_system, x, y);
+
+ win->eventstate->prevx= oldx;
+ win->eventstate->prevy= oldy;
+ }
+} \ No newline at end of file
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
index 73803846d70..e53a96ad9f6 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
@@ -138,17 +138,17 @@ void KX_BlenderCanvas::SetMouseState(RAS_MouseState mousestate)
{
case MOUSE_INVISIBLE:
{
- BL_HideMouse();
+ BL_HideMouse(m_win);
break;
}
case MOUSE_WAIT:
{
- BL_WaitMouse();
+ BL_WaitMouse(m_win);
break;
}
case MOUSE_NORMAL:
{
- BL_NormalMouse();
+ BL_NormalMouse(m_win);
break;
}
default:
@@ -166,7 +166,7 @@ void KX_BlenderCanvas::SetMousePosition(int x,int y)
int winY = m_frame_rect.GetBottom();
int winH = m_frame_rect.GetHeight();
- BL_warp_pointer(winX + x, winY + (winH-y-1));
+ BL_warp_pointer(m_win, winX + x, winY + (winH-y-1));
}
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
index 5967ce78b46..2c6962b5863 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
@@ -64,7 +64,7 @@ public:
*
* @param area The Blender ARegion to run the game within.
*/
- KX_BlenderCanvas(struct wmWindow* win, struct RAS_Rect &rect);
+ KX_BlenderCanvas(struct wmWindow* win, class RAS_Rect &rect);
~KX_BlenderCanvas();
void
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
index bb02f3b372e..b718dfc1acd 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
@@ -73,11 +73,11 @@ extern "C" {
#include "BKE_image.h"
extern "C" {
-//XXX #include "BDR_drawmesh.h"
-//XXX #include "BIF_mywindow.h"
-//XXX #include "BIF_toolbox.h"
-//XXX #include "BIF_graphics.h" /* For CURSOR_NONE CURSOR_WAIT CURSOR_STD */
-void wm_window_swap_buffers(wmWindow *win); // wm_window.h
+#include "WM_api.h"
+#include "WM_types.h"
+#include "wm_event_system.h"
+#include "wm_cursors.h"
+#include "wm_window.h"
}
/* end of blender block */
@@ -90,16 +90,14 @@ void spack(unsigned int ucol)
glColor3ub(cp[3], cp[2], cp[1]);
}
-void BL_warp_pointer(int x,int y)
+void BL_warp_pointer(wmWindow *win, int x,int y)
{
- //XXX warp_pointer(x,y);
+ WM_cursor_warp(win, x, y);
}
void BL_SwapBuffers(wmWindow *win)
{
- //wmWindow *window= CTX_wm_window(C);
wm_window_swap_buffers(win);
- //XXX myswapbuffers();
}
void DisableForText()
@@ -194,21 +192,21 @@ void BL_print_gamedebug_line_padded(const char* text, int xco, int yco, int widt
glEnable(GL_DEPTH_TEST);
}
-void BL_HideMouse()
+void BL_HideMouse(wmWindow *win)
{
- //XXX set_cursor(CURSOR_NONE);
+ WM_cursor_set(win, CURSOR_NONE);
}
-void BL_WaitMouse()
+void BL_WaitMouse(wmWindow *win)
{
- //XXX set_cursor(CURSOR_WAIT);
+ WM_cursor_set(win, CURSOR_WAIT);
}
-void BL_NormalMouse()
+void BL_NormalMouse(wmWindow *win)
{
- //XXX set_cursor(CURSOR_STD);
+ WM_cursor_set(win, CURSOR_STD);
}
#define MAX_FILE_LENGTH 512
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderGL.h b/source/gameengine/BlenderRoutines/KX_BlenderGL.h
index 5c947ff630e..d93b5eeabc5 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderGL.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderGL.h
@@ -39,13 +39,13 @@ struct ARegion;
// special swapbuffers, that takes care of which area (viewport) needs to be swapped
void BL_SwapBuffers(struct wmWindow *win);
-void BL_warp_pointer(int x,int y);
+void BL_warp_pointer(struct wmWindow *win,int x,int y);
void BL_MakeScreenShot(struct ARegion *ar, const char* filename);
-void BL_HideMouse();
-void BL_NormalMouse();
-void BL_WaitMouse();
+void BL_HideMouse(struct wmWindow *win);
+void BL_NormalMouse(struct wmWindow *win);
+void BL_WaitMouse(struct wmWindow *win);
void BL_print_gamedebug_line(const char* text, int xco, int yco, int width, int height);
void BL_print_gamedebug_line_padded(const char* text, int xco, int yco, int width, int height);