Subversion Repositories Kolibri OS

Rev

Rev 2382 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2382 Rev 2385
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: 2382 $
8
$Revision: 2385 $
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