Rev 2337 | Rev 2430 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2337 | Rev 2384 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 2337 $ |
8 | $Revision: 2384 $ |
9 | 9 | ||
10 | 10 | ||
11 | LOAD_FROM_FILE equ 0 |
11 | LOAD_FROM_FILE equ 0 |
Line 12... | Line 12... | ||
12 | LOAD_FROM_MEM equ 1 |
12 | LOAD_FROM_MEM equ 1 |
13 | LOAD_INDIRECT equ 2 |
13 | LOAD_INDIRECT equ 2 |
14 | LOAD_SYSTEM equ 3 |
14 | LOAD_SYSTEM equ 3 |
15 | 15 | ||
16 | struc BITMAPINFOHEADER { |
16 | struct BITMAPINFOHEADER |
17 | .biSize dd ? ; DWORD |
17 | Size dd ? |
18 | .biWidth dd ? ; LONG |
18 | Width dd ? |
19 | .biHeight dd ? ; LONG |
19 | Height dd ? |
20 | .biPlanes dw ? ; WORD |
20 | Planes dw ? |
21 | .biBitCount dw ? ; WORD |
21 | BitCount dw ? |
22 | .biCompression dd ? ; DWORD |
22 | Compression dd ? |
23 | .biSizeImage dd ? ; DWORD |
23 | SizeImage dd ? |
24 | .biXPelsPerMeter dd ? ; LONG |
- | |
25 | .biYPelsPerMeter dd ? ; LONG |
- | |
26 | .biClrUsed dd ? ; DWORD |
- | |
27 | .biClrImportant dd ? ; DWORD |
- | |
28 | } |
24 | XPelsPerMeter dd ? |
Line 29... | Line 25... | ||
29 | 25 | YPelsPerMeter dd ? |
|
30 | virtual at 0 |
26 | ClrUsed dd ? |
31 | BI BITMAPINFOHEADER |
27 | ClrImportant dd ? |
32 | end virtual |
28 | ends |
Line 45... | Line 41... | ||
45 | 41 | ||
46 | mov esi, [src] |
42 | mov esi, [src] |
47 | add esi, [esi+18] |
43 | add esi, [esi+18] |
Line 48... | Line 44... | ||
48 | mov eax, esi |
44 | mov eax, esi |
49 | 45 | ||
50 | cmp [esi+BI.biBitCount], 24 |
46 | cmp [esi+BITMAPINFOHEADER.BitCount], 24 |
51 | je .img_24 |
47 | je .img_24 |
52 | cmp [esi+BI.biBitCount], 8 |
48 | cmp [esi+BITMAPINFOHEADER.BitCount], 8 |
53 | je .img_8 |
49 | je .img_8 |
Line 54... | Line 50... | ||
54 | cmp [esi+BI.biBitCount], 4 |
50 | cmp [esi+BITMAPINFOHEADER.BitCount], 4 |
55 | je .img_4 |
51 | je .img_4 |
56 | 52 | ||
Line 224... | Line 220... | ||
224 | .img_24: |
220 | .img_24: |
225 | add eax, [esi] |
221 | add eax, [esi] |
226 | mov [pQuad], eax |
222 | mov [pQuad], eax |
227 | add eax, 0xC00 |
223 | add eax, 0xC00 |
228 | mov [pAnd], eax |
224 | mov [pAnd], eax |
229 | mov eax, [esi+BI.biWidth] |
225 | mov eax, [esi+BITMAPINFOHEADER.Width] |
230 | mov [width], eax |
226 | mov [width], eax |
231 | mov ebx, [esi+BI.biHeight] |
227 | mov ebx, [esi+BITMAPINFOHEADER.Height] |
232 | shr ebx, 1 |
228 | shr ebx, 1 |
233 | mov [height], ebx |
229 | mov [height], ebx |
Line 234... | Line 230... | ||
234 | 230 | ||
235 | mov edi, [dst] |
231 | mov edi, [dst] |
Line 298... | Line 294... | ||
298 | sub esp, 4 ;space for .hcursor |
294 | sub esp, 4 ;space for .hcursor |
299 | push ecx |
295 | push ecx |
300 | push ebx |
296 | push ebx |
Line 301... | Line 297... | ||
301 | 297 | ||
302 | mov ebx, eax |
298 | mov ebx, eax |
303 | mov eax, CURSOR.sizeof |
299 | mov eax, sizeof.CURSOR |
304 | call create_kernel_object |
300 | call create_kernel_object |
305 | test eax, eax |
301 | test eax, eax |
Line 306... | Line 302... | ||
306 | jz .fail |
302 | jz .fail |