SFG_PlatformContext pContext; /* The window's FBConfig (X11) or device context (Windows) */
int DoubleBuffered; /* Treat the window as double-buffered */
- GLint attribute_v_coord;
- GLint attribute_v_normal;
+ GLint attribute_v_coord;
+ GLint attribute_v_normal;
};
if (fgState.MenuStatusCallback)
{
/* Get cursor position on screen and convert to relative to parent_window's client area */
- POINT mouse_pos;
- GetCursorPos(&mouse_pos);
- mouse_pos.x -= glutGet( GLUT_WINDOW_X );
- mouse_pos.y -= glutGet( GLUT_WINDOW_Y );
+ SFG_XYUse mouse_pos;
+ fghPlatformGetMousePos(&mouse_pos);
+
+ mouse_pos.X -= glutGet( GLUT_WINDOW_X );
+ mouse_pos.Y -= glutGet( GLUT_WINDOW_Y );
- fgState.MenuStatusCallback(GLUT_MENU_NOT_IN_USE, mouse_pos.x, mouse_pos.y);
+ fgState.MenuStatusCallback(GLUT_MENU_NOT_IN_USE, mouse_pos.X, mouse_pos.Y);
}
}
}
static pRegisterTouchWindow fghRegisterTouchWindow = (pRegisterTouchWindow)0xDEADBEEF;
#endif
-/*
- * Helper functions for getting client area from the window rect
- * and the window rect from the client area given the style of the window
- * (or a valid window pointer from which the style can be queried).
- */
-extern void fghGetBorderWidth(const DWORD windowStyle, int* xBorderWidth, int* yBorderWidth);
-
/*
* Setup the pixel format for a Win32 window
}
+void fghPlatformGetMousePos(SFG_XYUse *mouse_pos)
+{
+ POINT pos;
+ GetCursorPos(&pos);
+
+ mouse_pos->X = pos.x;
+ mouse_pos->Y = pos.y;
+ mouse_pos->Use = GL_TRUE;
+}
+
+/* Returns the width of the window borders based on the window's style.
+*/
+void fghGetBorderWidth(const DWORD windowStyle, int* xBorderWidth, int* yBorderWidth)
+{
+ if (windowStyle & WS_THICKFRAME)
+ {
+ *xBorderWidth = GetSystemMetrics(SM_CXSIZEFRAME);
+ *yBorderWidth = GetSystemMetrics(SM_CYSIZEFRAME);
+ }
+ else if (windowStyle & WS_DLGFRAME)
+ {
+ *xBorderWidth = GetSystemMetrics(SM_CXFIXEDFRAME);
+ *yBorderWidth = GetSystemMetrics(SM_CYFIXEDFRAME);
+ }
+ else
+ {
+ *xBorderWidth = 0;
+ *yBorderWidth = 0;
+ }
+}
+
+
/* Computes position of corners of window Rect (outer position including
* decorations) based on the provided client rect and based on the style
return windowRect;
}
-/* Returns the width of the window borders based on the window's style.
- */
-void fghGetBorderWidth(const DWORD windowStyle, int* xBorderWidth, int* yBorderWidth)
-{
- if (windowStyle & WS_THICKFRAME)
- {
- *xBorderWidth = GetSystemMetrics(SM_CXSIZEFRAME);
- *yBorderWidth = GetSystemMetrics(SM_CYSIZEFRAME);
- }
- else if (windowStyle & WS_DLGFRAME)
- {
- *xBorderWidth = GetSystemMetrics(SM_CXFIXEDFRAME);
- *yBorderWidth = GetSystemMetrics(SM_CYFIXEDFRAME);
- }
- else
- {
- *xBorderWidth = 0;
- *yBorderWidth = 0;
- }
-}
-
#if(WINVER >= 0x500)
typedef struct
{