14 #ifndef TEXTUREPEEKER_H
15 #define TEXTUREPEEKER_H
32 INLINE
bool is_valid()
const;
35 INLINE
int get_x_size()
const;
36 INLINE
int get_y_size()
const;
37 INLINE
int get_z_size()
const;
39 INLINE
bool has_pixel(
int x,
int y)
const;
40 void lookup(LColor &color, PN_stdfloat u, PN_stdfloat v)
const;
41 void lookup(LColor &color, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w)
const;
42 void fetch_pixel(LColor &color,
int x,
int y)
const;
43 bool lookup_bilinear(LColor &color, PN_stdfloat u, PN_stdfloat v)
const;
44 void filter_rect(LColor &color,
45 PN_stdfloat min_u, PN_stdfloat min_v,
46 PN_stdfloat max_u, PN_stdfloat max_v)
const;
47 void filter_rect(LColor &color,
48 PN_stdfloat min_u, PN_stdfloat min_v, PN_stdfloat min_w,
49 PN_stdfloat max_u, PN_stdfloat max_v, PN_stdfloat max_w)
const;
52 static void init_rect_minmax(
int &min_x,
int &max_x,
53 PN_stdfloat &min_u, PN_stdfloat &max_u,
56 void accum_filter_z(LColor &color, PN_stdfloat &net,
57 int min_x,
int max_x, PN_stdfloat min_u, PN_stdfloat max_u,
58 int min_y,
int max_y, PN_stdfloat min_v, PN_stdfloat max_v,
59 int min_z,
int max_z, PN_stdfloat min_w, PN_stdfloat max_w)
const;
60 void accum_filter_y(LColor &color, PN_stdfloat &net,
int zi,
61 int min_x,
int max_x, PN_stdfloat min_u, PN_stdfloat max_u,
62 int min_y,
int max_y, PN_stdfloat min_v, PN_stdfloat max_v,
63 PN_stdfloat weight)
const;
64 void accum_filter_x(LColor &color, PN_stdfloat &net,
int yi,
int zi,
65 int min_x,
int max_x, PN_stdfloat min_u, PN_stdfloat max_u,
66 PN_stdfloat weight)
const;
67 void accum_texel(LColor &color, PN_stdfloat &net,
const unsigned char *&p,
68 PN_stdfloat weight)
const;
70 typedef double GetComponentFunc(
const unsigned char *&p);
71 typedef void GetTexelFunc(LColor &color,
const unsigned char *&p,
72 GetComponentFunc *get_component);
74 static void get_texel_r(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
75 static void get_texel_g(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
76 static void get_texel_b(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
77 static void get_texel_a(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
78 static void get_texel_l(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
79 static void get_texel_la(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
80 static void get_texel_rg(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
81 static void get_texel_rgb(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
82 static void get_texel_rgba(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
83 static void get_texel_srgb(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
84 static void get_texel_srgba(LColor &color,
const unsigned char *&p, GetComponentFunc *get_component);
92 Texture::Format _format;
93 Texture::ComponentType _component_type;
96 GetComponentFunc *_get_component;
97 GetTexelFunc *_get_texel;