Rev 8382 | Rev 8396 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8382 | Rev 8389 | ||
---|---|---|---|
Line 117... | Line 117... | ||
117 | $pop edi |
117 | $pop edi |
118 | } |
118 | } |
Line 119... | Line 119... | ||
119 | 119 | ||
120 | :void libimg_image::load(dword file_path) |
120 | :void libimg_image::load(dword file_path) |
- | 121 | { |
|
121 | { |
122 | if (image) img_destroy stdcall(image); |
122 | load_image(file_path); |
123 | img_from_file stdcall(file_path); |
123 | if (!EAX) { |
124 | if (!EAX) { |
124 | notify("'Error: Image not loaded'E"); |
125 | notify("'Error: Image not loaded'E"); |
125 | } else { |
126 | } else { |
126 | image = EAX; |
127 | image = EAX; |
Line 148... | Line 149... | ||
148 | image = EAX; |
149 | image = EAX; |
149 | set_vars(); |
150 | set_vars(); |
150 | } |
151 | } |
151 | } |
152 | } |
Line 152... | Line -... | ||
152 | - | ||
153 | :dword load_image(dword filename) |
- | |
154 | { |
- | |
155 | //align 4 |
- | |
156 | dword img_data=0; |
- | |
157 | dword img_data_len=0; |
- | |
158 | dword fh=0; |
- | |
159 | dword image=0; |
- | |
160 | - | ||
161 | byte tmp_buf[40]; |
- | |
162 | $and img_data, 0 |
- | |
163 | //$mov eax, filename |
- | |
164 | //$push eax |
- | |
165 | //invoke file.open, eax, O_READ |
- | |
166 | file_open stdcall (filename, O_READ); |
- | |
167 | $or eax, eax |
- | |
168 | $jnz loc05 |
- | |
169 | $stc |
- | |
170 | return 0; |
- | |
171 | @loc05: |
- | |
172 | $mov fh, eax |
- | |
173 | //invoke file.size |
- | |
174 | file_size stdcall (filename); |
- | |
175 | $mov img_data_len, ebx |
- | |
176 | //stdcall mem.Alloc, ebx |
- | |
177 | mem_Alloc(EBX); |
- | |
178 | - | ||
179 | $test eax, eax |
- | |
180 | $jz error_close |
- | |
181 | $mov img_data, eax |
- | |
182 | //invoke file.read, [fh], eax, [img_data_len] |
- | |
183 | file_read stdcall (fh, EAX, img_data_len); |
- | |
184 | $cmp eax, -1 |
- | |
185 | $jz error_close |
- | |
186 | $cmp eax, img_data_len |
- | |
187 | $jnz error_close |
- | |
188 | //invoke file.close, [fh] |
- | |
189 | file_close stdcall (fh); |
- | |
190 | $inc eax |
- | |
191 | $jz error_ |
- | |
192 | //; img.decode checks for img.is_img |
- | |
193 | //; //invoke img.is_img, [img_data], [img_data_len] |
- | |
194 | //; $or eax, eax |
- | |
195 | //; $jz exit |
- | |
196 | //invoke img.decode, [img_data], [img_data_len], 0 |
- | |
197 | EAX=img_data; |
- | |
198 | img_decode stdcall (EAX, img_data_len,0); |
- | |
199 | $or eax, eax |
- | |
200 | $jz error_ |
- | |
201 | $cmp image, 0 |
- | |
202 | $pushf |
- | |
203 | $mov image, eax |
- | |
204 | //call init_frame |
- | |
205 | $popf |
- | |
206 | //call update_image_sizes |
- | |
207 | mem_Free(img_data);//free_img_data(img_data); |
- | |
208 | $clc |
- | |
209 | return image; |
- | |
210 | - | ||
211 | @error_free: |
- | |
212 | //invoke img.destroy, [image] |
- | |
213 | img_destroy stdcall (image); |
- | |
214 | $jmp error_ |
- | |
215 | - | ||
216 | @error_pop: |
- | |
217 | $pop eax |
- | |
218 | $jmp error_ |
- | |
219 | @error_close: |
- | |
220 | //invoke file.close, [fh] |
- | |
221 | file_close stdcall (fh); |
- | |
222 | @error_: |
- | |
223 | mem_Free(img_data); |
- | |
224 | $stc |
- | |
225 | return 0; |
- | |
226 | } |
- | |
227 | 153 | ||
228 | :dword create_image(dword type, dword width, dword height) { |
154 | :dword create_image(dword type, dword width, dword height) { |
229 | img_create stdcall(width, height, type); |
155 | img_create stdcall(width, height, type); |
230 | return EAX; |
156 | return EAX; |
Line 236... | Line 162... | ||
236 | ESDWORD[size] = ECX; |
162 | ESDWORD[size] = ECX; |
Line 237... | Line 163... | ||
237 | 163 | ||
238 | return EAX; |
164 | return EAX; |
Line 239... | Line -... | ||
239 | } |
- | |
240 | 165 | } |
|
241 | //NOTICE: DO NOT FORGET TO INIT libio AND libimg!!! |
166 | |
242 | #ifdef LANG_RUS |
167 | #ifdef LANG_RUS |
243 | #define TEXT_FILE_SAVED_AS "' ©« á®åà ¥ ª ª " |
168 | #define TEXT_FILE_SAVED_AS "' ©« á®åà ¥ ª ª " |
244 | #else |
169 | #else |