Rev 1079 | Rev 1308 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1079 | Rev 1102 | ||
---|---|---|---|
Line 47... | Line 47... | ||
47 | inc eax |
47 | inc eax |
48 | ret 8 |
48 | ret 8 |
49 | ;endp |
49 | ;endp |
Line 50... | Line 50... | ||
50 | 50 | ||
51 | ;;================================================================================================;; |
51 | ;;================================================================================================;; |
52 | ;;proc img.decode.png _data, _length ;////////////////////////////////////////////////////////////;; |
52 | ;;proc img.decode.png _data, _length, _options ;//////////////////////////////////////////////////;; |
53 | img.decode.png: |
53 | img.decode.png: |
54 | xor eax, eax ; .image = 0 |
54 | xor eax, eax ; .image = 0 |
55 | pushad |
55 | pushad |
56 | mov ebp, esp |
56 | mov ebp, esp |
Line 74... | Line 74... | ||
74 | rb 1Ch |
74 | rb 1Ch |
75 | .image dd ? |
75 | .image dd ? |
76 | rd 1 |
76 | rd 1 |
77 | .data dd ? |
77 | .data dd ? |
78 | .length dd ? |
78 | .length dd ? |
- | 79 | .options dd ? |
|
79 | end virtual |
80 | end virtual |
80 | push 0 ; .idat_read = 0 |
81 | push 0 ; .idat_read = 0 |
81 | sub esp, .localsize-4 |
82 | sub esp, .localsize-4 |
82 | ; load deflate unpacker, if not yet |
83 | ; load deflate unpacker, if not yet |
83 | ; acquire mutex |
84 | ; acquire mutex |
Line 97... | Line 98... | ||
97 | test eax, eax |
98 | test eax, eax |
98 | jz .deflate_loaded |
99 | jz .deflate_loaded |
99 | add esp, .localsize |
100 | add esp, .localsize |
100 | popad |
101 | popad |
101 | mov [deflate_loader_mutex], eax |
102 | mov [deflate_loader_mutex], eax |
102 | ret |
103 | ret 12 |
103 | .deflate_loaded: |
104 | .deflate_loaded: |
104 | ; release mutex |
105 | ; release mutex |
105 | mov [deflate_loader_mutex], 0 |
106 | mov [deflate_loader_mutex], 0 |
106 | ; ok, continue |
107 | ; ok, continue |
107 | mov esi, [.data] ; esi -> data |
108 | mov esi, [.data] ; esi -> data |
Line 227... | Line 228... | ||
227 | .iend: |
228 | .iend: |
228 | pop ecx |
229 | pop ecx |
229 | .eof: |
230 | .eof: |
230 | add esp, .localsize |
231 | add esp, .localsize |
231 | popad |
232 | popad |
232 | ret |
233 | ret 12 |
233 | ; PLTE chunk |
234 | ; PLTE chunk |
234 | .palette: |
235 | .palette: |
235 | mov eax, [.image] |
236 | mov eax, [.image] |
236 | test eax, eax |
237 | test eax, eax |
237 | jz .invalid_chunk |
238 | jz .invalid_chunk |
Line 874... | Line 875... | ||
874 | ret 8 |
875 | ret 8 |
875 | ;endp |
876 | ;endp |
Line 876... | Line 877... | ||
876 | 877 | ||
877 | img.encode.png: |
878 | img.encode.png: |
878 | xor eax, eax |
879 | xor eax, eax |