📄 guidev_measure.txt
字号:
AREA ||i._FillPolygon||, CODE, READONLY, ALIGN=1
_FillPolygon PROC
;;;235 */
;;;236 static void _FillPolygon(const GUI_POINT* paPoint, int NumPoints, int x0, int y0) {
000000 b57c PUSH {r2-r6,lr}
000002 4614 MOV r4,r2
;;;237 GUI_RECT r;
;;;238 _CalcPolyRect(&r, paPoint, NumPoints);
000004 460a MOV r2,r1
000006 4601 MOV r1,r0
000008 461d MOV r5,r3 ;236
00000a 4668 MOV r0,sp
00000c f7fffffe BL _CalcPolyRect
;;;239 GUI_MoveRect(&r, x0, y0);
000010 462a MOV r2,r5
000012 4621 MOV r1,r4
000014 4668 MOV r0,sp
000016 f7fffffe BL GUI_MoveRect
;;;240 _MarkRect(r.x0, r.y0, r.x1, r.y1);
00001a f9bd3006 LDRSH r3,[sp,#6]
00001e f9bd2004 LDRSH r2,[sp,#4]
000022 f9bd1002 LDRSH r1,[sp,#2]
000026 f9bd0000 LDRSH r0,[sp,#0]
00002a f7fffffe BL _MarkRect
;;;241 }
00002e bd7c POP {r2-r6,pc}
;;;242
ENDP
AREA ||i._FillPolygonAA||, CODE, READONLY, ALIGN=2
_FillPolygonAA PROC
;;;246 */
;;;247 static void _FillPolygonAA(const GUI_POINT* paPoint, int NumPoints, int x0, int y0) {
000000 b57c PUSH {r2-r6,lr}
000002 4614 MOV r4,r2
;;;248 #if GUI_SUPPORT_AA
;;;249 GUI_RECT r;
;;;250 _CalcPolyRect(&r, paPoint, NumPoints);
000004 460a MOV r2,r1
000006 4601 MOV r1,r0
000008 461d MOV r5,r3 ;247
00000a 4668 MOV r0,sp
00000c f7fffffe BL _CalcPolyRect
;;;251 GUI_MoveRect(&r, x0, y0);
000010 462a MOV r2,r5
000012 4621 MOV r1,r4
000014 4668 MOV r0,sp
000016 f7fffffe BL GUI_MoveRect
;;;252 if (GUI_Context.AA_HiResEnable) {
00001a 4816 LDR r0,|L12.116|
00001c f890105d LDRB r1,[r0,#0x5d] ; GUI_Context
000020 b1e9 CBZ r1,|L12.94|
;;;253 r.x0 /= GUI_Context.AA_Factor;
000022 f9bd1000 LDRSH r1,[sp,#0]
000026 f890005c LDRB r0,[r0,#0x5c] ; GUI_Context
00002a fb91f1f0 SDIV r1,r1,r0
00002e f8ad1000 STRH r1,[sp,#0]
;;;254 r.y0 /= GUI_Context.AA_Factor;
000032 f9bd1002 LDRSH r1,[sp,#2]
000036 fb91f1f0 SDIV r1,r1,r0
00003a f8ad1002 STRH r1,[sp,#2]
;;;255 r.x1 = (r.x1 + GUI_Context.AA_Factor - 1) / GUI_Context.AA_Factor;
00003e f9bd1004 LDRSH r1,[sp,#4]
000042 4401 ADD r1,r1,r0
000044 1e49 SUBS r1,r1,#1
000046 fb91f1f0 SDIV r1,r1,r0
00004a f8ad1004 STRH r1,[sp,#4]
;;;256 r.y1 = (r.y1 + GUI_Context.AA_Factor - 1) / GUI_Context.AA_Factor;
00004e f9bd1006 LDRSH r1,[sp,#6]
000052 4401 ADD r1,r1,r0
000054 1e49 SUBS r1,r1,#1
000056 fb91f0f0 SDIV r0,r1,r0
00005a f8ad0006 STRH r0,[sp,#6]
|L12.94|
;;;257 }
;;;258 _MarkRect(r.x0, r.y0, r.x1, r.y1);
00005e f9bd3006 LDRSH r3,[sp,#6]
000062 f9bd2004 LDRSH r2,[sp,#4]
000066 f9bd1002 LDRSH r1,[sp,#2]
00006a f9bd0000 LDRSH r0,[sp,#0]
00006e f7fffffe BL _MarkRect
;;;259 #else
;;;260 GUI_USE_PARA(paPoint);
;;;261 GUI_USE_PARA(NumPoints);
;;;262 GUI_USE_PARA(x0);
;;;263 GUI_USE_PARA(y0);
;;;264 #endif
;;;265 }
000072 bd7c POP {r2-r6,pc}
;;;266
ENDP
|L12.116|
DCD GUI_Context
AREA ||i._FillRect||, CODE, READONLY, ALIGN=1
_FillRect PROC
;;;161 */
;;;162 static void _FillRect(int x0, int y0, int x1, int y1) {
000000 f7ffbffe B.W _MarkRect
;;;163 _MarkRect(x0, y0, x1, y1);
;;;164 }
;;;165
ENDP
AREA ||i._GetIndexMask||, CODE, READONLY, ALIGN=2
_GetIndexMask PROC
;;;196 */
;;;197 static unsigned int _GetIndexMask(void) {
000000 b510 PUSH {r4,lr}
;;;198 GUI_MEASDEV* pDev = GUI_MEASDEV_H2P(GUI_Context.hDevData);
000002 4804 LDR r0,|L14.20|
000004 f9b0004c LDRSH r0,[r0,#0x4c] ; GUI_Context
000008 f7fffffe BL GUI_ALLOC_h2p
;;;199 return pDev->pfGetIndexMask();
00000c 6900 LDR r0,[r0,#0x10]
00000e e8bd4010 POP {r4,lr}
000012 4700 BX r0
;;;200 }
;;;201
ENDP
|L14.20|
DCD GUI_Context
AREA ||i._GetPixelIndex||, CODE, READONLY, ALIGN=1
_GetPixelIndex PROC
;;;151 */
;;;152 static unsigned int _GetPixelIndex(int x, int y) {
000000 2000 MOVS r0,#0
;;;153 GUI_USE_PARA(x);
;;;154 GUI_USE_PARA(y);
;;;155 return 0;
;;;156 }
000002 4770 BX lr
;;;157
ENDP
AREA ||i._GetRect||, CODE, READONLY, ALIGN=1
_GetRect PROC
;;;169 */
;;;170 static void _GetRect(LCD_RECT* pRect) {
000000 f24f0101 MOV r1,#0xf001
;;;171 pRect->x0 = pRect->y0 = -4095;
000004 8041 STRH r1,[r0,#2]
000006 8001 STRH r1,[r0,#0]
;;;172 pRect->x1 = pRect->y1 = 4095;
000008 f64071ff MOV r1,#0xfff
00000c 80c1 STRH r1,[r0,#6]
00000e 8081 STRH r1,[r0,#4]
;;;173 }
000010 4770 BX lr
;;;174
ENDP
AREA ||i._Index2Color||, CODE, READONLY, ALIGN=2
_Index2Color PROC
;;;187 */
;;;188 static LCD_COLOR _Index2Color(int Index) {
000000 b510 PUSH {r4,lr}
000002 4604 MOV r4,r0
;;;189 GUI_MEASDEV* pDev = GUI_MEASDEV_H2P(GUI_Context.hDevData);
000004 4804 LDR r0,|L17.24|
000006 f9b0004c LDRSH r0,[r0,#0x4c] ; GUI_Context
00000a f7fffffe BL GUI_ALLOC_h2p
;;;190 return pDev->pfIndex2Color(Index);
00000e 68c1 LDR r1,[r0,#0xc]
000010 4620 MOV r0,r4
000012 e8bd4010 POP {r4,lr}
000016 4708 BX r1
;;;191 }
;;;192
ENDP
|L17.24|
DCD GUI_Context
AREA ||i._MarkPixel||, CODE, READONLY, ALIGN=2
_MarkPixel PROC
;;;69 */
;;;70 static void _MarkPixel(int x, int y) {
000000 b570 PUSH {r4-r6,lr}
000002 4604 MOV r4,r0
;;;71 GUI_MEASDEV* pDev = (GUI_MEASDEV*)(GUI_MEMDEV_H2P(GUI_Context.hDevData));
000004 480e LDR r0,|L18.64|
000006 460d MOV r5,r1 ;70
000008 f9b0004c LDRSH r0,[r0,#0x4c] ; GUI_Context
00000c f7fffffe BL GUI_ALLOC_h2p
;;;72 if (x < pDev->rUsed.x0)
000010 f9b02000 LDRSH r2,[r0,#0]
;;;73 pDev->rUsed.x0 = x;
000014 b221 SXTH r1,r4
000016 42a2 CMP r2,r4 ;72
000018 dd00 BLE |L18.28|
00001a 8001 STRH r1,[r0,#0]
|L18.28|
;;;74 if (x > pDev->rUsed.x1)
00001c f9b02004 LDRSH r2,[r0,#4]
000020 42a2 CMP r2,r4
000022 da00 BGE |L18.38|
;;;75 pDev->rUsed.x1 = x;
000024 8081 STRH r1,[r0,#4]
|L18.38|
;;;76 if (y < pDev->rUsed.y0)
000026 f9b02002 LDRSH r2,[r0,#2]
;;;77 pDev->rUsed.y0 = y;
00002a b229 SXTH r1,r5
00002c 42aa CMP r2,r5 ;76
00002e dd00 BLE |L18.50|
000030 8041 STRH r1,[r0,#2]
|L18.50|
;;;78 if (y > pDev->rUsed.y1)
000032 f9b02006 LDRSH r2,[r0,#6]
000036 42aa CMP r2,r5
000038 da00 BGE |L18.60|
;;;79 pDev->rUsed.y1 = y;
00003a 80c1 STRH r1,[r0,#6]
|L18.60|
;;;80 }
00003c bd70 POP {r4-r6,pc}
;;;81
ENDP
00003e 0000 DCW 0x0000
|L18.64|
DCD GUI_Context
AREA ||i._MarkRect||, CODE, READONLY, ALIGN=2
_MarkRect PROC
;;;85 */
;;;86 static void _MarkRect(int x0, int y0, int x1, int y1) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 4605 MOV r5,r0
;;;87 GUI_MEASDEV* pDev = (GUI_MEASDEV*)(GUI_MEMDEV_H2P(GUI_Context.hDevData));
000006 480f LDR r0,|L19.68|
000008 460f MOV r7,r1 ;86
00000a 4616 MOV r6,r2 ;86
00000c 461c MOV r4,r3 ;86
00000e f9b0004c LDRSH r0,[r0,#0x4c] ; GUI_Context
000012 f7fffffe BL GUI_ALLOC_h2p
;;;88 if (x0 < pDev->rUsed.x0)
000016 f9b01000 LDRSH r1,[r0,#0]
00001a 42a9 CMP r1,r5
00001c dd00 BLE |L19.32|
;;;89 pDev->rUsed.x0 = x0;
00001e 8005 STRH r5,[r0,#0]
|L19.32|
;;;90 if (x1 > pDev->rUsed.x1)
000020 f9b01004 LDRSH r1,[r0,#4]
000024 42b1 CMP r1,r6
000026 da00 BGE |L19.42|
;;;91 pDev->rUsed.x1 = x1;
000028 8086 STRH r6,[r0,#4]
|L19.42|
;;;92 if (y1 < pDev->rUsed.y0)
00002a f9b01002 LDRSH r1,[r0,#2]
00002e 42a1 CMP r1,r4
000030 dd00 BLE |L19.52|
;;;93 pDev->rUsed.y0 = y0;
000032 8047 STRH r7,[r0,#2]
|L19.52|
;;;94 if (y1 > pDev->rUsed.y1)
000034 f9b01006 LDRSH r1,[r0,#6]
000038 42a1 CMP r1,r4
00003a da00 BGE |L19.62|
;;;95 pDev->rUsed.y1 = y1;
00003c 80c4 STRH r4,[r0,#6]
|L19.62|
;;;96 }
00003e e8bd81f0 POP {r4-r8,pc}
;;;97
ENDP
000042 0000 DCW 0x0000
|L19.68|
DCD GUI_Context
AREA ||i._SetPixelIndex||, CODE, READONLY, ALIGN=1
_SetPixelIndex PROC
;;;134 */
;;;135 static void _SetPixelIndex(int x, int y, int Index) {
000000 f7ffbffe B.W _MarkPixel
;;;136 GUI_USE_PARA(Index);
;;;137 _MarkPixel(x, y);
;;;138 }
;;;139
ENDP
AREA ||i._XorPixel||, CODE, READONLY, ALIGN=1
_XorPixel PROC
;;;143 */
;;;144 static void _XorPixel(int x, int y) {
000000 f7ffbffe B.W _MarkPixel
;;;145 _MarkPixel(x, y);
;;;146 }
;;;147
ENDP
AREA ||.constdata||, DATA, READONLY, ALIGN=2
_APIList
DCD _Color2Index
DCD _Index2Color
DCD _GetIndexMask
DCD _DrawBitmap
DCD _DrawHLine
DCD _DrawVLine
DCD _FillRect
DCD _GetPixelIndex
DCD _GetRect
DCD _SetPixelIndex
DCD _XorPixel
DCD 0x00000000
DCD _FillPolygon
DCD _FillPolygonAA
DCD 0x00000000
DCD 0x00000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -