static GLUSvoid glusInternalMouseMove(GLFWwindow* window, double x, double y) { g_mouseX = (GLUSint)x; g_mouseY = (GLUSint)y; if (glusMouseMove) { glusMouseMove(g_buttons, g_mouseX, g_mouseY); } }
GLUSvoid _glusWindowInternalMouseMove(GLUSint x, GLUSint y) { g_mouseX = x; g_mouseY = y; if (glusMouseMove) { glusMouseMove(g_buttons, g_mouseX, g_mouseY); } }
static GLUSvoid glusInternalMouseMove(GLUSint x, GLUSint y) { g_mouseX = x; g_mouseY = y; if (glusMouseMove) { glusMouseMove(g_buttons, g_mouseX, g_mouseY); } }
LRESULT CALLBACK WndProc( HWND hWnd, // Handle For This Window UINT uMsg, // Message For This Window WPARAM wParam, // Additional Message Information LPARAM lParam) // Additional Message Information { switch (uMsg) // Check For Windows Messages { case WM_ACTIVATE: // Watch For Window Activate Message { if (!HIWORD(wParam)) // Check Minimization State { g_active = GLUS_TRUE; // Program Is Active } else { g_active = GLUS_FALSE; // Program Is No Longer Active } return 0; // Return To The Message Loop } case WM_SYSCOMMAND: // Intercept System Commands { switch (wParam) // Check System Calls { case SC_SCREENSAVE: // Screensaver Trying To Start? case SC_MONITORPOWER: // Monitor Trying To Enter Powersave? return 0; // Prevent From Happening } break; // Exit } case WM_CLOSE: // Did We Receive A Close Message? { PostQuitMessage(0); // Send A Quit Message return 0; // Jump Back } case WM_KEYDOWN: // Is A Key Being Held Down? { if (wParam == VK_ESCAPE) { PostQuitMessage(0); // Send A Quit Message } else { if(glusKey && g_initdone) { glusKey(GLUS_TRUE, wParam); } } return 0; // Jump Back } case WM_KEYUP: { if (wParam == VK_ESCAPE) { // Do nothing } else { if(glusKey && g_initdone) { glusKey(GLUS_FALSE, wParam); } } return 0; // Jump Back } case WM_LBUTTONDOWN: case WM_MBUTTONDOWN: case WM_RBUTTONDOWN: { if(glusMouse && g_initdone) { GLUSuint button = 0; if (uMsg == WM_LBUTTONDOWN) { button = 1; } else if (uMsg == WM_MBUTTONDOWN) { button = 2; } else if (uMsg == WM_RBUTTONDOWN) { button = 4; } glusMouse(GLUS_TRUE, button, LOWORD( lParam ), HIWORD( lParam ) ); } return 0; } case WM_LBUTTONUP: case WM_MBUTTONUP: case WM_RBUTTONUP: { if(glusMouse && g_initdone) { GLUSuint button = 0; if (uMsg == WM_LBUTTONUP) { button = 1; } else if (uMsg == WM_MBUTTONUP) { button = 2; } else if (uMsg == WM_RBUTTONUP) { button = 4; } glusMouse(GLUS_FALSE, button, LOWORD( lParam ), HIWORD( lParam ) ); } return 0; } case WM_MOUSEMOVE: { if(glusMouseMove && g_initdone) { GLUSuint buttons = 0; if (LOWORD(wParam) & MK_LBUTTON) { buttons |= 1; } if (LOWORD(wParam) & MK_MBUTTON) { buttons |= 2; } if (LOWORD(wParam) & MK_RBUTTON) { buttons |= 4; } glusMouseMove(buttons, LOWORD( lParam ), HIWORD( lParam ) ); } return 0; } case WM_MOUSEWHEEL: { if(glusMouseWheel && g_initdone) { GLUSuint buttons = 0; if (LOWORD(wParam) & MK_LBUTTON) { buttons |= 1; } if (LOWORD(wParam) & MK_MBUTTON) { buttons |= 2; } if (LOWORD(wParam) & MK_RBUTTON) { buttons |= 4; } glusMouseWheel(buttons, GET_WHEEL_DELTA_WPARAM(wParam)/WHEEL_DELTA, LOWORD( lParam ), HIWORD( lParam )); } return 0; } case WM_SIZE: // Resize The OpenGL Window { g_width = LOWORD(lParam); // LoWord=Width, HiWord=Height g_height = HIWORD(lParam); if (glusReshape && g_initdone) { glusReshape(g_width, g_height); } return 0; // Jump Back } } // Pass All Unhandled Messages To DefWindowProc return DefWindowProc(hWnd, uMsg, wParam, lParam); }