⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui2dlib.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
;;;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 + -