Subversion Repositories Kolibri OS

Rev

Rev 1921 | Rev 2684 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
717 mikedld 1
;;================================================================================================;;
999 diamond 2
;;//// libimg.inc //// (c) mike.dld, 2007-2008, (c) diamond, 2009 ////////////////////////////////;;
717 mikedld 3
;;================================================================================================;;
4
;;                                                                                                ;;
5
;; This file is part of Common development libraries (Libs-Dev).                                  ;;
6
;;                                                                                                ;;
7
;; Libs-Dev is free software: you can redistribute it and/or modify it under the terms of the GNU ;;
999 diamond 8
;; Lesser General Public License as published by the Free Software Foundation, either version 2.1 ;;
9
;; of the License, or (at your option) any later version.                                         ;;
717 mikedld 10
;;                                                                                                ;;
11
;; Libs-Dev is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without  ;;
12
;; even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  ;;
999 diamond 13
;; Lesser General Public License for more details.                                                ;;
717 mikedld 14
;;                                                                                                ;;
999 diamond 15
;; You should have received a copy of the GNU Lesser General Public License along with Libs-Dev.  ;;
16
;; If not, see .                                                    ;;
717 mikedld 17
;;                                                                                                ;;
18
;;================================================================================================;;
19
 
20
 
21
struct FormatsTableEntry
1593 dunkaist 22
  Is     dd ?
717 mikedld 23
  Decode dd ?
24
  Encode dd ?
25
ends
26
 
27
struct Image
28
  Checksum dd ? ; ((Width ROL 16) OR Height) XOR Data[0]
29
  Width    dd ?
30
  Height   dd ?
1593 dunkaist 31
  Next     dd ?
717 mikedld 32
  Previous dd ?
999 diamond 33
  Type     dd ? ; one of Image.bppN
1593 dunkaist 34
  Data     dd ?
1921 dunkaist 35
  Palette  dd ? ; used iff Type eq Image.bpp8 or Image.bpp1
717 mikedld 36
  Extended dd ?
1079 diamond 37
  Flags    dd ? ; bitfield
38
  Delay    dd ? ; used iff Image.IsAnimated is set in Flags
717 mikedld 39
ends
40
 
1079 diamond 41
; values for Image.Type
42
; must be consecutive to allow fast switch on Image.Type in support functions
43
Image.bpp8  = 1
999 diamond 44
Image.bpp24 = 2
45
Image.bpp32 = 3
1079 diamond 46
Image.bpp15 = 4
47
Image.bpp16 = 5
1593 dunkaist 48
Image.bpp1  = 6
2388 dunkaist 49
Image.bpp4  = 7
999 diamond 50
 
1079 diamond 51
; bits in Image.Flags
52
Image.IsAnimated = 1
53
 
1102 diamond 54
struct ImageDecodeOptions
55
  UsedSize        dd ? ; if >=8, the field BackgroundColor is valid, and so on
56
  BackgroundColor dd ? ; used for transparent images as background
57
ends
58
 
1593 dunkaist 59
FLIP_VERTICAL   = 0x01
717 mikedld 60
FLIP_HORIZONTAL = 0x02
1593 dunkaist 61
FLIP_BOTH   = FLIP_VERTICAL or FLIP_HORIZONTAL
783 mikedld 62
 
63
ROTATE_90_CW   = 0x01
64
ROTATE_180     = 0x02
65
ROTATE_270_CW  = 0x03
66
ROTATE_90_CCW  = ROTATE_270_CW
67
ROTATE_270_CCW = ROTATE_90_CW