File: xmng.h

package info (click to toggle)
libmng 1.0.9-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 4,100 kB
  • ctags: 6,056
  • sloc: ansic: 67,786; pascal: 1,726; sh: 150; makefile: 142
file content (85 lines) | stat: -rw-r--r-- 2,186 bytes parent folder | download
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef _XMNG_H_
#define _XMNG_H_
#define CANVAS_RGB8_SIZE		3
#define CANVAS_RGBA8_SIZE 		4
#define CANVAS_ARGB8_SIZE 		4
#define CANVAS_RGB8_A8_SIZE 	4
#define CANVAS_BGR8_SIZE 		3
#define CANVAS_BGRA8_SIZE 		4
#define CANVAS_BGRA8PM_SIZE 	4
#define CANVAS_ABGR8_SIZE 		4

#define MNG_MAGIC "\x8aMNG\x0d\x0a\x1a\x0a"
#define JNG_MAGIC "\x8bJNG\x0d\x0a\x1a\x0a"
#define PNG_MAGIC "\x89PNG\x0d\x0a\x1a\x0a"
#define PSEUDOCOLOR 1
#define TRUECOLOR   2

#define MNG_TYPE 1
#define JNG_TYPE 2
#define PNG_TYPE 3

#define SPACE_X	10
#define SPACE_Y 10
#define BUT_ENTRY_BORDER 0
#define FRAME_SHADOW_WIDTH 2
#define ANY_WIDTH 4

#define OK MNG_NOERROR 

typedef struct
{
	mng_handle user_handle;
	Widget canvas;
	int type;
    mng_uint32 delay;
    mng_uint32 img_width, img_height;
    mng_uint32 read_len;
	mng_uint32 read_pos;
	unsigned char *read_buf;
	unsigned char *mng_buf;
	unsigned char *dither_line;

	Window user_win;
	Window frame_win;
	Window control_win;
	GC gc;
	Display *dpy;
	Window win;
	unsigned short mng_rgb_size;
	unsigned short mng_bytes_per_line;
	XImage *ximage;
	void *shm;
	int gray;
	int display_depth, display_type;
	int have_shmem;
	Pixel bg_pixel;
	int user_bg;

	Visual *visual;
	unsigned int depth;
	int bpl;/* ximage->bytes_per_line */
	unsigned short frozen;
	unsigned short restarted;
	unsigned short stopped;
/* do not free */
    char *read_idf;
    FILE *reader;
	int *argc_ptr;
	char **argv;
} image_data, *image_data_ptr;

#define XPUTIMAGE(dpy,dr,gc,xi,a,b,c,d,w,h)                          \
    if (have_shmem)                                                  \
    XShmPutImage(dpy,dr,gc,xi,a,b,c,d,w,h,True);                 \
    else                                                             \
    XPutImage(dpy,dr,gc,xi,a,b,c,d,w,h)

extern void Viewer_postlude(void);
extern XImage *x11_create_ximage(image_data *data);
extern void x11_destroy_ximage(image_data *data);
extern void x11_init_color(image_data *data);
extern void viewer_renderline(image_data *data, unsigned char *scanline, 
	unsigned int row, unsigned int x, unsigned int width);

#endif