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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
// Programmed by Jedidiah Barber
// Released into the public domain
#include <FL/Fl_Image.H>
#include "c_fl_image.h"
class My_Image : public Fl_Image {
public:
using Fl_Image::Fl_Image;
friend void fl_image_draw_empty(IMAGE i, int x, int y);
};
IMAGE new_fl_image(int w, int h, int d) {
My_Image *i = new My_Image(w, h, d);
return i;
}
void free_fl_image(IMAGE i) {
delete static_cast<My_Image*>(i);
}
int fl_image_get_rgb_scaling() {
return Fl_Image::RGB_scaling();
}
void fl_image_set_rgb_scaling(int t) {
Fl_Image::RGB_scaling(static_cast<Fl_RGB_Scaling>(t));
}
IMAGE fl_image_copy(IMAGE i, int w, int h) {
// virtual so disable dispatch
return static_cast<Fl_Image*>(i)->Fl_Image::copy(w, h);
}
IMAGE fl_image_copy2(IMAGE i) {
return static_cast<Fl_Image*>(i)->copy();
}
void fl_image_color_average(IMAGE i, int c, float b) {
// virtual so disable dispatch
static_cast<Fl_Image*>(i)->Fl_Image::color_average(c, b);
}
void fl_image_desaturate(IMAGE i) {
// virtual so disable dispatch
static_cast<Fl_Image*>(i)->Fl_Image::desaturate();
}
void fl_image_inactive(IMAGE i) {
static_cast<Fl_Image*>(i)->inactive();
}
int fl_image_fail(IMAGE i) {
switch (static_cast<Fl_Image*>(i)->fail()) {
case Fl_Image::ERR_NO_IMAGE:
return 1;
case Fl_Image::ERR_FILE_ACCESS:
return 2;
case Fl_Image::ERR_FORMAT:
return 3;
default:
return 0;
}
}
void fl_image_uncache(IMAGE i) {
// virtual so disable dispatch
static_cast<Fl_Image*>(i)->Fl_Image::uncache();
}
int fl_image_w(IMAGE i) {
return static_cast<Fl_Image*>(i)->w();
}
int fl_image_h(IMAGE i) {
return static_cast<Fl_Image*>(i)->h();
}
int fl_image_d(IMAGE i) {
return static_cast<Fl_Image*>(i)->d();
}
int fl_image_ld(IMAGE i) {
return static_cast<Fl_Image*>(i)->ld();
}
int fl_image_count(IMAGE i) {
return static_cast<Fl_Image*>(i)->count();
}
const void * fl_image_data(IMAGE i) {
return static_cast<Fl_Image*>(i)->data();
}
char fl_image_get_pixel(char *c, int off) {
return c[off];
}
void fl_image_set_pixel(char *c, int off, char val) {
c[off] = val;
}
void fl_image_draw(IMAGE i, int x, int y) {
static_cast<Fl_Image*>(i)->draw(x, y);
}
void fl_image_draw2(IMAGE i, int x, int y, int w, int h, int cx, int cy) {
// virtual so disable dispatch
static_cast<Fl_Image*>(i)->Fl_Image::draw(x, y, w, h, cx, cy);
}
void fl_image_draw_empty(IMAGE i, int x, int y) {
static_cast<My_Image*>(i)->draw_empty(x, y);
}
|