Diagonal resize cursor redone.

This commit is contained in:
Scott Duensing 2026-03-18 01:15:45 -05:00
parent 35f79eb834
commit 84b0762820

View file

@ -176,86 +176,118 @@ static const uint16_t cursorResizeVXor[16] = {
// Diagonal resize cursor NW-SE (top-left / bottom-right), 16x16 // Diagonal resize cursor NW-SE (top-left / bottom-right), 16x16
// ============================================================ // ============================================================
// Hot spot at center (7, 7) // Hot spot at center (7, 7)
//
// True 45-degree diagonal with filled triangular arrowheads:
//
// .XXXXX.......... NW arrowhead (right-angle triangle)
// .XXXX...........
// .XXX............
// .XX.X...........
// .X...X..........
// ......X......... diagonal shaft (one pixel per row)
// .......X........
// ........X.......
// .........X......
// ..........X...X.
// ...........X.XX.
// ............XXX.
// ...........XXXX.
// ..........XXXXX. SE arrowhead (mirror of NW)
static const uint16_t cursorResizeDiagNWSEAnd[16] = { static const uint16_t cursorResizeDiagNWSEAnd[16] = {
0xFFFF, // row 0 0x01FF, // 0000000111111111 row 0 NW outline
0xFFFF, // row 1 0x01FF, // 0000000111111111 row 1
0xE0FF, // 1110000011111111 row 2 top-left arrow 0x01FF, // 0000000111111111 row 2
0xE0FF, // 1110000011111111 row 3 0x03FF, // 0000001111111111 row 3
0xE4FF, // 1110010011111111 row 4 0x01FF, // 0000000111111111 row 4
0xECFF, // 1110110011111111 row 5 0x00FF, // 0000000011111111 row 5
0xF4FF, // 1111010011111111 row 6 0x107F, // 0001000001111111 row 6 shaft
0xFCFF, // 1111110011111111 row 7 0xF83F, // 1111100000111111 row 7
0xFF3F, // 1111111100111111 row 8 0xFC1F, // 1111110000011111 row 8
0xFF2F, // 1111111100101111 row 9 0xFE08, // 1111111000001000 row 9
0xFF37, // 1111111100110111 row 10 0xFF00, // 1111111100000000 row 10 SE outline
0xFF27, // 1111111100100111 row 11 0xFF80, // 1111111110000000 row 11
0xFF07, // 1111111100000111 row 12 0xFFC0, // 1111111111000000 row 12
0xFF07, // 1111111100000111 row 13 bottom-right arrow 0xFF80, // 1111111110000000 row 13
0xFFFF, // row 14 0xFF80, // 1111111110000000 row 14
0xFFFF // row 15 0xFF80 // 1111111110000000 row 15
}; };
static const uint16_t cursorResizeDiagNWSEXor[16] = { static const uint16_t cursorResizeDiagNWSEXor[16] = {
0x0000, // row 0 0x0000, // 0000000000000000 row 0
0x0000, // row 1 0x7C00, // 0111110000000000 row 1 XXXXX
0x1F00, // 0001111100000000 row 2 0x7800, // 0111100000000000 row 2 XXXX
0x0E00, // 0000111000000000 row 3 0x7000, // 0111000000000000 row 3 XXX
0x0E00, // 0000111000000000 row 4 0x6800, // 0110100000000000 row 4 XX.X
0x0700, // 0000011100000000 row 5 0x4400, // 0100010000000000 row 5 X...X
0x0B00, // 0000101100000000 row 6 0x0200, // 0000001000000000 row 6 X
0x0100, // 0000000100000000 row 7 0x0100, // 0000000100000000 row 7 X
0x0080, // 0000000010000000 row 8 0x0080, // 0000000010000000 row 8 X
0x00D0, // 0000000011010000 row 9 0x0040, // 0000000001000000 row 9 X
0x00E0, // 0000000011100000 row 10 0x0022, // 0000000000100010 row 10 X...X
0x0070, // 0000000001110000 row 11 0x0016, // 0000000000010110 row 11 X.XX
0x0070, // 0000000001110000 row 12 0x000E, // 0000000000001110 row 12 XXX
0x00F8, // 0000000011111000 row 13 0x001E, // 0000000000011110 row 13 XXXX
0x0000, // row 14 0x003E, // 0000000000111110 row 14 XXXXX
0x0000 // row 15 0x0000 // 0000000000000000 row 15
}; };
// ============================================================ // ============================================================
// Diagonal resize cursor NE-SW (top-right / bottom-left), 16x16 // Diagonal resize cursor NE-SW (top-right / bottom-left), 16x16
// ============================================================ // ============================================================
// Hot spot at center (7, 7) // Hot spot at center (7, 7)
//
// ..........XXXXX. NE arrowhead
// ...........XXXX.
// ............XXX.
// ...........X.XX.
// ..........X...X.
// .........X...... diagonal shaft
// ........X.......
// .......X........
// ......X.........
// .X...X..........
// .XX.X...........
// .XXX............
// .XXXX...........
// .XXXXX.......... SW arrowhead
static const uint16_t cursorResizeDiagNESWAnd[16] = { static const uint16_t cursorResizeDiagNESWAnd[16] = {
0xFFFF, // row 0 0xFF80, // 1111111110000000 row 0 NE outline
0xFFFF, // row 1 0xFF80, // 1111111110000000 row 1
0xFF07, // 1111111100000111 row 2 top-right arrow 0xFF80, // 1111111110000000 row 2
0xFF07, // 1111111100000111 row 3 0xFFC0, // 1111111111000000 row 3
0xFF27, // 1111111100100111 row 4 0xFF80, // 1111111110000000 row 4
0xFF37, // 1111111100110111 row 5 0xFF00, // 1111111100000000 row 5
0xFF2F, // 1111111100101111 row 6 0xFE08, // 1111111000001000 row 6 shaft
0xFF3F, // 1111111100111111 row 7 0xFC1F, // 1111110000011111 row 7
0xFCFF, // 1111110011111111 row 8 0xF83F, // 1111100000111111 row 8
0xF4FF, // 1111010011111111 row 9 0x107F, // 0001000001111111 row 9
0xECFF, // 1110110011111111 row 10 0x00FF, // 0000000011111111 row 10 SW outline
0xE4FF, // 1110010011111111 row 11 0x01FF, // 0000000111111111 row 11
0xE0FF, // 1110000011111111 row 12 0x03FF, // 0000001111111111 row 12
0xE0FF, // 1110000011111111 row 13 bottom-left arrow 0x01FF, // 0000000111111111 row 13
0xFFFF, // row 14 0x01FF, // 0000000111111111 row 14
0xFFFF // row 15 0x01FF // 0000000111111111 row 15
}; };
static const uint16_t cursorResizeDiagNESWXor[16] = { static const uint16_t cursorResizeDiagNESWXor[16] = {
0x0000, // row 0 0x0000, // 0000000000000000 row 0
0x0000, // row 1 0x003E, // 0000000000111110 row 1 XXXXX
0x00F8, // 0000000011111000 row 2 0x001E, // 0000000000011110 row 2 XXXX
0x0070, // 0000000001110000 row 3 0x000E, // 0000000000001110 row 3 XXX
0x0070, // 0000000001110000 row 4 0x0016, // 0000000000010110 row 4 X.XX
0x00E0, // 0000000011100000 row 5 0x0022, // 0000000000100010 row 5 X...X
0x00D0, // 0000000011010000 row 6 0x0040, // 0000000001000000 row 6 X
0x0080, // 0000000010000000 row 7 0x0080, // 0000000010000000 row 7 X
0x0100, // 0000000100000000 row 8 0x0100, // 0000000100000000 row 8 X
0x0B00, // 0000101100000000 row 9 0x0200, // 0000001000000000 row 9 X
0x0700, // 0000011100000000 row 10 0x4400, // 0100010000000000 row 10 X...X
0x0E00, // 0000111000000000 row 11 0x6800, // 0110100000000000 row 11 XX.X
0x0E00, // 0000111000000000 row 12 0x7000, // 0111000000000000 row 12 XXX
0x1F00, // 0001111100000000 row 13 0x7800, // 0111100000000000 row 13 XXXX
0x0000, // row 14 0x7C00, // 0111110000000000 row 14 XXXXX
0x0000 // row 15 0x0000 // 0000000000000000 row 15
}; };
// ============================================================ // ============================================================