aboutsummaryrefslogtreecommitdiffstats
path: root/w3mimg/w3mimg.h
blob: 086b1d5840f2e79e4d1b7b6ad91320ae167e1b1f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* $Id: w3mimg.h,v 1.1 2002/07/17 20:58:48 ukai Exp $ */
#include "config.h"

#ifdef USE_W3MIMG_FB
#include "w3mimg/fb/fb.h"
#include "w3mimg/fb/fb_img.h"
#endif

typedef struct {
    void *pixmap;	/* driver specific */
    int width;
    int height;
} W3MImage;

typedef struct _w3mimg_op {
    void *priv;	/* driver specific data */
    int width, height;	/* window width, height */
    int offset_x, offset_y; /* offset */

    int (*init)(struct _w3mimg_op *self);
    int (*finish)(struct _w3mimg_op *self);
    int (*active)(struct _w3mimg_op *self);
    void (*set_background)(struct _w3mimg_op *self, char *background);
    void (*sync)(struct _w3mimg_op *self);
    void (*close)(struct _w3mimg_op *self);

    int (*load_image)(struct _w3mimg_op *self, W3MImage *img, char *fname, 
		      int w, int h);
    int (*show_image)(struct _w3mimg_op *self, W3MImage *img,
		      int sx, int sy, int sw, int sh, int x, int y);
    void (*free_image)(struct _w3mimg_op *self, W3MImage *img);
} w3mimg_op;

#ifdef USE_W3MIMG_X11
w3mimg_op *w3mimg_x11open();
#endif
#ifdef USE_W3MIMG_FB
w3mimg_op *w3mimg_fbopen();
#endif

static w3mimg_op *w3mimg_open() {
    w3mimg_op *w_op = NULL;
#ifdef USE_W3MIMG_X11
    if (w_op == NULL)
	w_op = w3mimg_x11open();
#endif
#ifdef USE_W3MIMG_FB
    if (w_op == NULL)
	w_op = w3mimg_fbopen();
#endif
    return w_op;
}