Subversion Repositories Kolibri OS

Rev

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