Subversion Repositories Kolibri OS

Rev

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