| 63 | } |
| 64 | |
| 65 | static void VirtualCursor_SetPosition(int x, int y) { |
| 66 | x = max(0, min(x, Window_Main.Width - 1)); |
| 67 | y = max(0, min(y, Window_Main.Height - 1)); |
| 68 | vc_hooked = true; |
| 69 | |
| 70 | if (x == Pointers[0].x && y == Pointers[0].y) return; |
| 71 | Pointer_SetPosition(0, x, y); |
| 72 | LBackend_Hooks[3] = VirtualCursor_Display2D; |
| 73 | Game.Draw2DHooks[3] = VirtualCursor_Display3D; |
| 74 | |
| 75 | /* TODO better dirty region tracking */ |
| 76 | if (!Window_Main.Is3D) LBackend_Redraw(); |
| 77 | } |
| 78 |
no test coverage detected