From 0a4dc62ce6926a5b46d6985050d3c29f754aa880 Mon Sep 17 00:00:00 2001 From: nakst <> Date: Mon, 22 Nov 2021 14:20:12 +0000 Subject: [PATCH] adjust cursor shadow --- apps/samples/list.cpp | 1 - desktop/gui.cpp | 4 ++-- kernel/graphics.cpp | 6 +++++- kernel/syscall.cpp | 7 ++++--- res/Cursors.png | Bin 22360 -> 21022 bytes 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/samples/list.cpp b/apps/samples/list.cpp index deeefd9..4924d67 100644 --- a/apps/samples/list.cpp +++ b/apps/samples/list.cpp @@ -8,7 +8,6 @@ const EsListViewEnumString colorStrings[] = { // We are using enum strings for the favorite color. // "\a ... ]" is a bit of rich text markup. // "#" sets the color to the hex code. - #define COLOR_RED (0) { "\a#e00]Red", -1 }, #define COLOR_GREEN (1) diff --git a/desktop/gui.cpp b/desktop/gui.cpp index da60c47..68c853d 100644 --- a/desktop/gui.cpp +++ b/desktop/gui.cpp @@ -7237,8 +7237,8 @@ bool UISetCursor(EsWindow *window) { CURSOR(case ES_CURSOR_MOVE_DRAG, 197, 13, 10, 10, 24, 24); CURSOR(case ES_CURSOR_ROTATE_HOVER, 228, 49, 9, 10, 24, 32); CURSOR(case ES_CURSOR_ROTATE_DRAG, 198, 49, 9, 10, 22, 22); - CURSOR(case ES_CURSOR_BLANK, 5, 13, 0, 0, 1, 1); - CURSOR(default, 23, 18, 1, 1, 15, 24); + CURSOR(case ES_CURSOR_BLANK, 0, 0, 0, 0, 1, 1); + CURSOR(default, 24, 19, 0, 0, 11, 20); } bool shadow = cursorStyle != ES_CURSOR_TEXT && api.global->showCursorShadow; diff --git a/kernel/graphics.cpp b/kernel/graphics.cpp index 14b42a8..5891e1a 100644 --- a/kernel/graphics.cpp +++ b/kernel/graphics.cpp @@ -6,6 +6,10 @@ #define CURSOR_SHADOW_OFFSET_X (0) #define CURSOR_SHADOW_OFFSET_Y (1) +#define CURSOR_PADDING_T (2) +#define CURSOR_PADDING_B (4) +#define CURSOR_PADDING_L (3) +#define CURSOR_PADDING_R (3) struct Surface : EsPaintTarget { bool Resize(size_t newResX, size_t newResY, uint32_t clearColor = 0, bool copyOldBits = false); @@ -483,7 +487,7 @@ void Surface::Draw(Surface *source, EsRectangle destinationRegion, int sourceX, } void Surface::CreateCursorShadow(Surface *temporary) { - const uint32_t kernel[] = { 14, 43, 82, 43, 14 }; + const uint32_t kernel[] = { 14, 43, 82, 39, 11 }; uint32_t *bits1 = (uint32_t *) bits; uint32_t *bits2 = (uint32_t *) temporary->bits; diff --git a/kernel/syscall.cpp b/kernel/syscall.cpp index e55b2f1..6f912e1 100644 --- a/kernel/syscall.cpp +++ b/kernel/syscall.cpp @@ -911,13 +911,14 @@ SYSCALL_IMPLEMENT(ES_SYSCALL_WINDOW_SET_CURSOR) { windowManager.cursorImageOffsetY = (int8_t) ((argument2 >> 8) & 0xFF); windowManager.cursorShadow = argument3 & (1 << 30); - int width = imageWidth + CURSOR_SHADOW_OFFSET_X; - int height = imageHeight + CURSOR_SHADOW_OFFSET_Y; + int width = imageWidth + CURSOR_PADDING_L + CURSOR_PADDING_R; + int height = imageHeight + CURSOR_PADDING_T + CURSOR_PADDING_B; if (windowManager.cursorSurface.Resize(width, height) && windowManager.cursorSwap.Resize(width, height) && windowManager.cursorTemporary.Resize(width, height)) { - windowManager.cursorSurface.SetBits((K_USER_BUFFER const void *) argument1, argument3 & 0xFFFFFF, ES_RECT_2S(imageWidth, imageHeight)); + windowManager.cursorSurface.SetBits((K_USER_BUFFER const void *) argument1, argument3 & 0xFFFFFF, + ES_RECT_4PD(CURSOR_PADDING_L, CURSOR_PADDING_T, imageWidth, imageHeight)); if (windowManager.cursorShadow) { windowManager.cursorSurface.CreateCursorShadow(&windowManager.cursorTemporary); diff --git a/res/Cursors.png b/res/Cursors.png index ee4dccd7143130c79e3ef0a765ffd00bd6a15ceb..da9be83555647a33a6f367e7b6403aa0aa533882 100644 GIT binary patch delta 16196 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 puMff%JFfAGsu0U{hNuz}5+n#@Ztm^@ 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 delta 17847 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 iD8(2PuwIOj;r|0p6Xn=i%4)v=0000