graphics: remember last mouse cursor size
This commit is contained in:
parent
e611bcc760
commit
55d3da43a2
@ -41,6 +41,7 @@ uint32_t graphics_Doublebuffer[2048 * 1024];
|
|||||||
xcursor_ChunkHeader_Image *graphics_Cursor;
|
xcursor_ChunkHeader_Image *graphics_Cursor;
|
||||||
int graphics_MouseCursorX, graphics_MouseCursorY;
|
int graphics_MouseCursorX, graphics_MouseCursorY;
|
||||||
static int __lastMouseX, __lastMouseY; // Last of mouse **IMAGE** position
|
static int __lastMouseX, __lastMouseY; // Last of mouse **IMAGE** position
|
||||||
|
static int __lastMouseSizeX, __lastMouseSizeY;
|
||||||
static uint32_t __mouseOverlay[MOUSE_OVERLAY_SIZE * MOUSE_OVERLAY_SIZE];
|
static uint32_t __mouseOverlay[MOUSE_OVERLAY_SIZE * MOUSE_OVERLAY_SIZE];
|
||||||
|
|
||||||
|
|
||||||
@ -170,11 +171,11 @@ static void __graphics__UpdateMouse() {
|
|||||||
|
|
||||||
int imgX = graphics_MouseCursorX - graphics_Cursor->xhot + 1;
|
int imgX = graphics_MouseCursorX - graphics_Cursor->xhot + 1;
|
||||||
int imgY = graphics_MouseCursorY - graphics_Cursor->yhot + 1;
|
int imgY = graphics_MouseCursorY - graphics_Cursor->yhot + 1;
|
||||||
if (imgX != __lastMouseX || imgY != __lastMouseY) { // moved
|
if (imgX != __lastMouseX || imgY != __lastMouseY || graphics_Cursor->width != __lastMouseSizeX || graphics_Cursor->height != __lastMouseSizeY) { // moved
|
||||||
__graphics_CopyBuffer32(
|
__graphics_CopyBuffer32(
|
||||||
__mouseOverlay, 0, 0, MOUSE_OVERLAY_SIZE, MOUSE_OVERLAY_SIZE,
|
__mouseOverlay, 0, 0, MOUSE_OVERLAY_SIZE, MOUSE_OVERLAY_SIZE,
|
||||||
graphics_Framebuffer, __lastMouseX, __lastMouseY, graphics_SystemVideoMode.Width, graphics_SystemVideoMode.Height,
|
graphics_Framebuffer, __lastMouseX, __lastMouseY, graphics_SystemVideoMode.Width, graphics_SystemVideoMode.Height,
|
||||||
graphics_Cursor->width, graphics_Cursor->height);
|
__lastMouseSizeX, __lastMouseSizeY);
|
||||||
__graphics_CopyBuffer32(
|
__graphics_CopyBuffer32(
|
||||||
graphics_Framebuffer, imgX, imgY, graphics_SystemVideoMode.Width, graphics_SystemVideoMode.Height,
|
graphics_Framebuffer, imgX, imgY, graphics_SystemVideoMode.Width, graphics_SystemVideoMode.Height,
|
||||||
__mouseOverlay, 0, 0, MOUSE_OVERLAY_SIZE, MOUSE_OVERLAY_SIZE,
|
__mouseOverlay, 0, 0, MOUSE_OVERLAY_SIZE, MOUSE_OVERLAY_SIZE,
|
||||||
@ -185,6 +186,8 @@ static void __graphics__UpdateMouse() {
|
|||||||
graphics_Cursor->width, graphics_Cursor->height);
|
graphics_Cursor->width, graphics_Cursor->height);
|
||||||
__lastMouseX = imgX;
|
__lastMouseX = imgX;
|
||||||
__lastMouseY = imgY;
|
__lastMouseY = imgY;
|
||||||
|
__lastMouseSizeX = graphics_Cursor->width;
|
||||||
|
__lastMouseSizeY = graphics_Cursor->height;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user