📄 gui2dlib.txt
字号:
;;;636 else
;;;637 LCD_HL_DrawPixel(y, x0+i);
00009e f8db2058 LDR r2,[r11,#0x58] ; GUI_Context
0000a2 19a9 ADDS r1,r5,r6
0000a4 6852 LDR r2,[r2,#4]
|L3.166|
0000a6 4790 BLX r2
0000a8 1c76 ADDS r6,r6,#1 ;631
|L3.170|
0000aa 42a6 CMP r6,r4 ;631
0000ac dde8 BLE |L3.128|
|L3.174|
;;;638 }
;;;639 /* Draw pixel by pixel with fill style */
;;;640 } else {
;;;641 for (i=0; i<=xdiff; i++) {
;;;642 long l = ((long)ydiff)*i+xdiffby2;
;;;643 int y = (ABS(l)<32767) ? (y0 + ((int)l)/xdiff) : (y0 + l/xdiff);
;;;644 if (!_SetLineColor(i)) {
;;;645 if (!Swapped)
;;;646 LCD_HL_DrawPixel(x0+i, y);
;;;647 else
;;;648 LCD_HL_DrawPixel(y, x0+i);
;;;649 }
;;;650 }
;;;651 }
;;;652 }
0000ae e8bd8ff8 POP {r3-r11,pc}
|L3.178|
0000b2 e019 B |L3.232|
|L3.180|
0000b4 fb079006 MLA r0,r7,r6,r9 ;642
0000b8 fb90f0f4 SDIV r0,r0,r4 ;643
0000bc 4440 ADD r0,r0,r8 ;643
0000be 9000 STR r0,[sp,#0] ;644
0000c0 4630 MOV r0,r6 ;644
0000c2 f7fffffe BL _SetLineColor
0000c6 b970 CBNZ r0,|L3.230|
0000c8 f1ba0f00 CMP r10,#0 ;645
0000cc d105 BNE |L3.218|
0000ce f8db1058 LDR r1,[r11,#0x58] ;646 ; GUI_Context
0000d2 19a8 ADDS r0,r5,r6 ;646
0000d4 684a LDR r2,[r1,#4] ;646
0000d6 9900 LDR r1,[sp,#0] ;646
0000d8 e004 B |L3.228|
|L3.218|
0000da f8db0058 LDR r0,[r11,#0x58] ;648 ; GUI_Context
0000de 19a9 ADDS r1,r5,r6 ;648
0000e0 6842 LDR r2,[r0,#4] ;648
0000e2 9800 LDR r0,[sp,#0] ;648
|L3.228|
0000e4 4790 BLX r2 ;646
|L3.230|
0000e6 1c76 ADDS r6,r6,#1 ;641
|L3.232|
0000e8 42a6 CMP r6,r4 ;641
0000ea dde3 BLE |L3.180|
0000ec e7df B |L3.174|
;;;653
ENDP
0000ee 0000 DCW 0x0000
|L3.240|
DCD GUI_Context
AREA ||i.GL_DrawLineTo||, CODE, READONLY, ALIGN=2
GL_DrawLineTo PROC
;;;469 */
;;;470 void GL_DrawLineTo(int x, int y) {
000000 b570 PUSH {r4-r6,lr}
;;;471 GL_DrawLine (GUI_Context.DrawPosX, GUI_Context.DrawPosY, x, y);
000002 4c07 LDR r4,|L4.32|
000004 4605 MOV r5,r0 ;470
000006 460e MOV r6,r1 ;470
000008 f9b41028 LDRSH r1,[r4,#0x28] ; GUI_Context
00000c f9b40026 LDRSH r0,[r4,#0x26] ; GUI_Context
000010 4633 MOV r3,r6
000012 462a MOV r2,r5
000014 f7fffffe BL GL_DrawLine
;;;472 GUI_Context.DrawPosX = x;
000018 84e5 STRH r5,[r4,#0x26]
;;;473 GUI_Context.DrawPosY = y;
00001a 8526 STRH r6,[r4,#0x28]
;;;474 }
00001c bd70 POP {r4-r6,pc}
;;;475
ENDP
00001e 0000 DCW 0x0000
|L4.32|
DCD GUI_Context
AREA ||i.GL_DrawPoint||, CODE, READONLY, ALIGN=2
GL_DrawPoint PROC
;;;663 */
;;;664 void GL_DrawPoint(int x, int y) {
000000 4b06 LDR r3,|L5.28|
;;;665 if (GUI_Context.PenSize == 1) {
000002 7d1a LDRB r2,[r3,#0x14] ; GUI_Context
000004 2a01 CMP r2,#1
000006 d102 BNE |L5.14|
;;;666 LCD_HL_DrawPixel(x, y);
000008 6d9a LDR r2,[r3,#0x58] ; GUI_Context
00000a 6852 LDR r2,[r2,#4]
00000c 4710 BX r2
|L5.14|
;;;667 } else {
;;;668 GL_FillCircle(x, y, (GUI_Context.PenSize - 1) / 2);
00000e 1e52 SUBS r2,r2,#1
000010 eb0272d2 ADD r2,r2,r2,LSR #31
000014 1052 ASRS r2,r2,#1
000016 f7ffbffe B.W GL_FillCircle
;;;669 }
;;;670 }
;;;671
ENDP
00001a 0000 DCW 0x0000
|L5.28|
DCD GUI_Context
AREA ||i.GL_DrawPolygon||, CODE, READONLY, ALIGN=1
GL_DrawPolygon PROC
;;;401 */
;;;402 void GL_DrawPolygon(const GUI_POINT*pPoints, int NumPoints, int x0, int y0) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 460d MOV r5,r1
;;;403 const GUI_POINT* pPoint = pPoints;
;;;404 GL_MoveTo(pPoint->x+x0, pPoint->y+y0);
000006 f9b01002 LDRSH r1,[r0,#2]
00000a 4606 MOV r6,r0 ;402
00000c 4604 MOV r4,r0 ;403
00000e f9b00000 LDRSH r0,[r0,#0]
000012 4617 MOV r7,r2 ;402
000014 4698 MOV r8,r3 ;402
000016 4419 ADD r1,r1,r3
000018 4410 ADD r0,r0,r2
00001a f7fffffe BL GL_MoveTo
;;;405 while (--NumPoints >0) {
00001e e008 B |L6.50|
|L6.32|
;;;406 pPoint++;
;;;407 GL_DrawLineTo(pPoint->x+x0, pPoint->y+y0);
000020 f9b40006 LDRSH r0,[r4,#6]
000024 eb000108 ADD r1,r0,r8
000028 f9340f04 LDRSH r0,[r4,#4]!
00002c 4438 ADD r0,r0,r7
00002e f7fffffe BL GL_DrawLineTo
|L6.50|
000032 1e6d SUBS r5,r5,#1 ;405
000034 2d00 CMP r5,#0 ;405
000036 dcf3 BGT |L6.32|
;;;408 }
;;;409 /* Now draw closing line unless it has already been closed */
;;;410 if ( (pPoint->x != pPoints->x)
000038 f9b41000 LDRSH r1,[r4,#0]
00003c f9b60000 LDRSH r0,[r6,#0]
000040 4281 CMP r1,r0
000042 d105 BNE |L6.80|
;;;411 ||(pPoint->y != pPoints->y))
000044 f9b41002 LDRSH r1,[r4,#2]
000048 f9b62002 LDRSH r2,[r6,#2]
00004c 4291 CMP r1,r2
00004e d008 BEQ |L6.98|
|L6.80|
;;;412 {
;;;413 GL_DrawLineTo(pPoints->x+x0, pPoints->y+y0);
000050 f9b62002 LDRSH r2,[r6,#2]
000054 4438 ADD r0,r0,r7
000056 eb020108 ADD r1,r2,r8
00005a e8bd41f0 POP {r4-r8,lr}
00005e f7ffbffe B.W GL_DrawLineTo
|L6.98|
;;;414 }
;;;415 }
000062 e8bd81f0 POP {r4-r8,pc}
;;;416
ENDP
AREA ||i.GL_MoveTo||, CODE, READONLY, ALIGN=2
GL_MoveTo PROC
;;;516 */
;;;517 void GL_MoveTo(int x, int y) {
000000 4a01 LDR r2,|L7.8|
;;;518 GUI_Context.DrawPosX = x;
000002 84d0 STRH r0,[r2,#0x26]
;;;519 GUI_Context.DrawPosY = y;
000004 8511 STRH r1,[r2,#0x28]
;;;520 }
000006 4770 BX lr
;;;521
ENDP
|L7.8|
DCD GUI_Context
AREA ||i.GUI_DrawLine||, CODE, READONLY, ALIGN=2
GUI_DrawLine PROC
;;;383 */
;;;384 void GUI_DrawLine(int x0, int y0, int x1, int y1) {
000000 e92d41f0 PUSH {r4-r8,lr}
;;;385 GUI_LOCK();
;;;386 #if (GUI_WINSUPPORT)
;;;387 WM_ADDORG(x0,y0);
000004 4d0b LDR r5,|L8.52|
000006 6c2e LDR r6,[r5,#0x40] ; GUI_Context
000008 1834 ADDS r4,r6,r0
00000a 6c68 LDR r0,[r5,#0x44] ; GUI_Context
;;;388 WM_ADDORG(x1,y1);
00000c 4416 ADD r6,r6,r2
00000e 1845 ADDS r5,r0,r1 ;387
000010 18c7 ADDS r7,r0,r3
;;;389 WM_ITERATE_START(NULL); {
000012 2000 MOVS r0,#0
000014 f7fffffe BL WM__InitIVRSearch
000018 e007 B |L8.42|
|L8.26|
;;;390 #endif
;;;391 GL_DrawLine (x0, y0, x1, y1);
00001a 463b MOV r3,r7
00001c 4632 MOV r2,r6
00001e 4629 MOV r1,r5
000020 4620 MOV r0,r4
000022 f7fffffe BL GL_DrawLine
;;;392 #if (GUI_WINSUPPORT)
;;;393 } WM_ITERATE_END();
000026 f7fffffe BL WM__GetNextIVR
|L8.42|
00002a 2800 CMP r0,#0
00002c d1f5 BNE |L8.26|
;;;394 #endif
;;;395 GUI_UNLOCK();
;;;396 }
00002e e8bd81f0 POP {r4-r8,pc}
;;;397
ENDP
000032 0000 DCW 0x0000
|L8.52|
DCD GUI_Context
AREA ||i.GUI_DrawLineRel||, CODE, READONLY, ALIGN=2
GUI_DrawLineRel PROC
;;;452 */
;;;453 void GUI_DrawLineRel(int dx, int dy) {
000000 b570 PUSH {r4-r6,lr}
000002 4604 MOV r4,r0
000004 460d MOV r5,r1
;;;454 GUI_LOCK();
;;;455 #if (GUI_WINSUPPORT)
;;;456 WM_ITERATE_START(NULL); {
000006 2000 MOVS r0,#0
000008 f7fffffe BL WM__InitIVRSearch
00000c b160 CBZ r0,|L9.40|
00000e 4e09 LDR r6,|L9.52|
|L9.16|
000010 f9b61028 LDRSH r1,[r6,#0x28] ; GUI_Context
000014 f9b60026 LDRSH r0,[r6,#0x26] ; GUI_Context
000018 194b ADDS r3,r1,r5
00001a 1902 ADDS r2,r0,r4
00001c f7fffffe BL GL_DrawLine
;;;457 #endif
;;;458 GL_DrawLineRelNM(dx,dy);
;;;459 #if (GUI_WINSUPPORT)
;;;460 } WM_ITERATE_END();
000020 f7fffffe BL WM__GetNextIVR
000024 2800 CMP r0,#0
000026 d1f3 BNE |L9.16|
|L9.40|
;;;461 #endif
;;;462 GUI_MoveRel(dx,dy);
000028 4629 MOV r1,r5
00002a 4620 MOV r0,r4
00002c e8bd4070 POP {r4-r6,lr}
000030 f7ffbffe B.W GUI_MoveRel
;;;463 GUI_UNLOCK();
;;;464 }
;;;465
ENDP
|L9.52|
DCD GUI_Context
AREA ||i.GUI_DrawLineTo||, CODE, READONLY, ALIGN=2
GUI_DrawLineTo PROC
;;;487 */
;;;488 void GUI_DrawLineTo(int x, int y) {
000000 b570 PUSH {r4-r6,lr}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -