forked from KolibriOS/kolibrios
add wrapper for libimg
git-svn-id: svn://kolibrios.org@6453 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
2562686ece
commit
0f225dfc05
30
contrib/C_Layer/libimg/kolibri_libimg.h
Normal file
30
contrib/C_Layer/libimg/kolibri_libimg.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#ifndef KOLIBRI_LIBIMG_H
|
||||||
|
#define KOLIBRI_LIBIMG_H
|
||||||
|
|
||||||
|
int kolibri_libimg_init(void)
|
||||||
|
{
|
||||||
|
int asm_init_status = init_libimg_asm();
|
||||||
|
|
||||||
|
/* just return asm_init_status? or return init_libimg_asm() ?*/
|
||||||
|
|
||||||
|
if(asm_init_status == 0)
|
||||||
|
return 0;
|
||||||
|
else
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern void* (*img_decode)(void *, uint32_t, uint32_t) __attribute__((__stdcall__));
|
||||||
|
extern void* (*img_encode)(void *, uint32_t, uint32_t) __attribute__((__stdcall__));
|
||||||
|
extern void* (*img_create)(uint32_t, uint32_t, uint32_t) __attribute__((__stdcall__));
|
||||||
|
extern void (*img_to_rgb2)(void *, void *) __attribute__((__stdcall__));
|
||||||
|
extern void* (*img_to_rgb)(void *) __attribute__((__stdcall__));
|
||||||
|
extern uint32_t (*img_flip)(void *, uint32_t) __attribute__((__stdcall__));
|
||||||
|
extern uint32_t (*img_flip_layer)(void *, uint32_t) __attribute__((__stdcall__));
|
||||||
|
extern uint32_t (*img_rotate)(void *, uint32_t) __attribute__((__stdcall__));
|
||||||
|
extern uint32_t (*img_rotate_layer)(void *, uint32_t) __attribute__((__stdcall__));
|
||||||
|
extern void (*img_draw)(void *, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t ) __attribute__((__stdcall__));
|
||||||
|
extern uint32_t (*img_count)(void *) __attribute__((__stdcall__));
|
||||||
|
extern uint32_t (*img_destroy)(void *) __attribute__((__stdcall__));
|
||||||
|
extern uint32_t (*img_destroy_layer)(void *) __attribute__((__stdcall__));
|
||||||
|
|
||||||
|
#endif /* KOLIBRI_LIBIMG_H */
|
78
contrib/C_Layer/libimg/loadlibimg.asm
Normal file
78
contrib/C_Layer/libimg/loadlibimg.asm
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
format coff
|
||||||
|
use32 ; Tell compiler to use 32 bit instructions
|
||||||
|
|
||||||
|
section '.init' code ; Keep this line before includes or GCC messes up call addresses
|
||||||
|
|
||||||
|
include '../../../programs/proc32.inc'
|
||||||
|
include '../../../programs/macros.inc'
|
||||||
|
purge section,mov,add,sub
|
||||||
|
|
||||||
|
include '../../../programs/dll.inc'
|
||||||
|
|
||||||
|
public init_libimg as '_init_libimg_asm'
|
||||||
|
;;; Returns 0 on success. -1 on failure.
|
||||||
|
|
||||||
|
proc init_libimg
|
||||||
|
|
||||||
|
mcall 68,11
|
||||||
|
|
||||||
|
stdcall dll.Load, @IMPORT
|
||||||
|
test eax, eax
|
||||||
|
jnz error
|
||||||
|
|
||||||
|
mov eax, 0
|
||||||
|
ret
|
||||||
|
|
||||||
|
error:
|
||||||
|
mov eax, -1
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
@IMPORT:
|
||||||
|
library lib_libimg, 'libimg.obj'
|
||||||
|
|
||||||
|
import lib_libimg, \
|
||||||
|
libimg_init, 'lib_init' , \
|
||||||
|
img_is_img, 'img_is_img' , \
|
||||||
|
img_info, 'img_info' , \
|
||||||
|
img_from_file, 'img_from_file', \
|
||||||
|
img_to_file, 'img_to_file', \
|
||||||
|
img_from_rgb, 'img_from_rgb', \
|
||||||
|
img_to_rgb, 'img_to_rgb', \
|
||||||
|
img_to_rgb2, 'img_to_rgb2', \
|
||||||
|
img_decode, 'img_decode', \
|
||||||
|
img_encode, 'img_encode', \
|
||||||
|
img_create, 'img_create', \
|
||||||
|
img_destroy, 'img_destroy', \
|
||||||
|
img_destroy_layer, 'img_destroy_layer', \
|
||||||
|
img_count, 'img_count', \
|
||||||
|
img_lock_bits, 'img_lock_bits', \
|
||||||
|
img_unlock_bits, 'img_unlock_bits', \
|
||||||
|
img_flip, 'img_flip', \
|
||||||
|
img_flip_layer, 'img_flip_layer', \
|
||||||
|
img_rotate, 'img_rotate', \
|
||||||
|
img_rotate_layer, 'img_rotate_layer', \
|
||||||
|
img_draw, 'img_draw'
|
||||||
|
|
||||||
|
public libimg_init as '_libimg_init'
|
||||||
|
; public img_is_img as '_img_is_img'
|
||||||
|
;public img_info as '_img_info'
|
||||||
|
;public img_from_file as '_img_from_file'
|
||||||
|
;public img_to_file as '_img_to_file'
|
||||||
|
;public img_from_rgb as '_img_from_rgb'
|
||||||
|
public img_to_rgb as '_img_to_rgb'
|
||||||
|
public img_to_rgb2 as '_img_to_rgb2'
|
||||||
|
public img_decode as '_img_decode'
|
||||||
|
public img_encode as '_img_encode'
|
||||||
|
public img_create as '_img_create'
|
||||||
|
public img_destroy as '_img_destroy'
|
||||||
|
public img_destroy_layer as '_img_destroy_layer'
|
||||||
|
public img_count as '_img_count'
|
||||||
|
;public img_lock_bits as '_img_lock_bits'
|
||||||
|
;public img_unlock_bits as '_img_unlock_bits'
|
||||||
|
public img_flip as '_img_flip'
|
||||||
|
public img_flip_layer as '_img_flip_layer'
|
||||||
|
public img_rotate as '_img_rotate'
|
||||||
|
public img_rotate_layer as '_img_rotate_layer'
|
||||||
|
public img_draw as '_img_draw'
|
Loading…
Reference in New Issue
Block a user