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

📄 gui_drawbitmapmag.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\gui_drawbitmapmag.o --depend=.\Obj\gui_drawbitmapmag.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\Core\GUI_DrawBitmapMag.c]
                          THUMB

                          AREA ||i.GUI_DrawBitmapMag||, CODE, READONLY, ALIGN=2

                  GUI_DrawBitmapMag PROC
;;;32     */
;;;33     void GUI_DrawBitmapMag(const GUI_BITMAP GUI_UNI_PTR *pBitmap, int x0, int y0, int xMul, int yMul) {
000000  e92d4ff0          PUSH     {r4-r11,lr}
;;;34       GUI_DRAWMODE PrevDraw;
;;;35       int xSize, ySize;
;;;36       const GUI_LOGPALETTE GUI_UNI_PTR * pPal;
;;;37       const LCD_PIXELINDEX* pTrans;
;;;38       GUI_LOCK();
;;;39       pPal = pBitmap->pPal;
;;;40       xSize = pBitmap->XSize;
;;;41       ySize = pBitmap->YSize;
;;;42       pTrans = LCD_GetpPalConvTable(pPal);
000004  68c5              LDR      r5,[r0,#0xc]
000006  4604              MOV      r4,r0                 ;33
000008  f8b09000          LDRH     r9,[r0,#0]            ;40
00000c  f8b0a002          LDRH     r10,[r0,#2]           ;41
000010  b089              SUB      sp,sp,#0x24           ;33
000012  460f              MOV      r7,r1                 ;33
000014  4690              MOV      r8,r2                 ;33
000016  469b              MOV      r11,r3                ;33
000018  4628              MOV      r0,r5
00001a  f7fffffe          BL       LCD_GetpPalConvTable
00001e  0006              MOVS     r6,r0
000020  f04f0100          MOV      r1,#0                 ;37
;;;43       if (!pTrans) {
000024  d104              BNE      |L1.48|
;;;44         pTrans = (pBitmap->BitsPerPixel != 1) ? NULL : &LCD_BKCOLORINDEX;
000026  88e0              LDRH     r0,[r4,#6]
000028  460e              MOV      r6,r1
00002a  2801              CMP      r0,#1
00002c  d100              BNE      |L1.48|
00002e  4e24              LDR      r6,|L1.192|
                  |L1.48|
;;;45       }
;;;46       PrevDraw = GUI_SetDrawMode((pPal && pPal->HasTrans) ? GUI_DRAWMODE_TRANS : 0);
000030  b115              CBZ      r5,|L1.56|
000032  7928              LDRB     r0,[r5,#4]
000034  b100              CBZ      r0,|L1.56|
000036  2102              MOVS     r1,#2
                  |L1.56|
000038  4608              MOV      r0,r1
00003a  f7fffffe          BL       GUI_SetDrawMode
;;;47       #if (GUI_WINSUPPORT)
;;;48         WM_ADDORG(x0,y0);
00003e  9008              STR      r0,[sp,#0x20]
000040  481f              LDR      r0,|L1.192|
;;;49         {
;;;50           GUI_RECT r;
;;;51           r.x0 = x0;
;;;52           r.x1 = x0 + xSize * xMul -1;
;;;53           r.y0 = y0;
;;;54           r.y1 = y0 + ySize * yMul -1;
000042  9a12              LDR      r2,[sp,#0x48]
000044  6c01              LDR      r1,[r0,#0x40]         ;48  ; GUI_Context
000046  440f              ADD      r7,r7,r1              ;48
000048  6c41              LDR      r1,[r0,#0x44]         ;48  ; GUI_Context
00004a  1e78              SUBS     r0,r7,#1              ;52
00004c  fb09000b          MLA      r0,r9,r11,r0          ;52
000050  4488              ADD      r8,r8,r1              ;48
000052  f8ad001c          STRH     r0,[sp,#0x1c]         ;52
000056  f1a80001          SUB      r0,r8,#1
00005a  fb0a0002          MLA      r0,r10,r2,r0
00005e  f8ad7018          STRH     r7,[sp,#0x18]         ;51
000062  f8ad001e          STRH     r0,[sp,#0x1e]
000066  f8ad801a          STRH     r8,[sp,#0x1a]         ;53
;;;55           WM_ITERATE_START(&r);
00006a  a806              ADD      r0,sp,#0x18
00006c  f7fffffe          BL       WM__InitIVRSearch
000070  e01e              B        |L1.176|
                  |L1.114|
;;;56       #endif
;;;57       if (pBitmap->pMethods) {
000072  6925              LDR      r5,[r4,#0x10]
000074  b165              CBZ      r5,|L1.144|
;;;58         #if GUI_COMPILER_SUPPORTS_FP      /* Do not support this on VERY simple chips and compilers */
;;;59           pBitmap->pMethods->pfDraw(x0, y0, pBitmap->XSize ,pBitmap->YSize, (U8 const *)pBitmap->pData, pBitmap->pPal, xMul, yMul);
000076  9b12              LDR      r3,[sp,#0x48]
000078  e9d40102          LDRD     r0,r1,[r4,#8]
00007c  e88d0803          STM      sp,{r0,r1,r11}
000080  9303              STR      r3,[sp,#0xc]
000082  682d              LDR      r5,[r5,#0]
000084  8863              LDRH     r3,[r4,#2]
000086  8822              LDRH     r2,[r4,#0]
000088  4641              MOV      r1,r8
00008a  4638              MOV      r0,r7
00008c  47a8              BLX      r5
00008e  e00d              B        |L1.172|
                  |L1.144|
;;;60         #endif
;;;61       } else {
;;;62         LCD_DrawBitmap(x0, y0, xSize, ySize, xMul, yMul
000090  88e0              LDRH     r0,[r4,#6]
000092  88a1              LDRH     r1,[r4,#4]
000094  68a2              LDR      r2,[r4,#8]
000096  ab02              ADD      r3,sp,#8
000098  c347              STM      r3!,{r0-r2,r6}
00009a  9b12              LDR      r3,[sp,#0x48]
00009c  464a              MOV      r2,r9
00009e  e9cdb300          STRD     r11,r3,[sp,#0]
0000a2  4653              MOV      r3,r10
0000a4  4641              MOV      r1,r8
0000a6  4638              MOV      r0,r7
0000a8  f7fffffe          BL       LCD_DrawBitmap
                  |L1.172|
;;;63                         ,pBitmap->BitsPerPixel, pBitmap->BytesPerLine
;;;64                         ,pBitmap->pData, pTrans);
;;;65       }
;;;66       #if (GUI_WINSUPPORT)
;;;67           WM_ITERATE_END();
0000ac  f7fffffe          BL       WM__GetNextIVR
                  |L1.176|
0000b0  2800              CMP      r0,#0
0000b2  d1de              BNE      |L1.114|
;;;68         }
;;;69       #endif
;;;70       GUI_SetDrawMode(PrevDraw);
0000b4  9808              LDR      r0,[sp,#0x20]
0000b6  b009              ADD      sp,sp,#0x24
0000b8  e8bd4ff0          POP      {r4-r11,lr}
0000bc  f7ffbffe          B.W      GUI_SetDrawMode
;;;71       GUI_UNLOCK();
;;;72     }
;;;73     
                          ENDP

                  |L1.192|
                          DCD      GUI_Context

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -