2016-05-17 03:04:11 +12:00
|
|
|
#pragma once
|
|
|
|
|
2016-03-19 06:57:51 +13:00
|
|
|
#ifndef igs_radial_blur_h
|
|
|
|
#define igs_radial_blur_h
|
|
|
|
|
|
|
|
#ifndef IGS_RADIAL_BLUR_EXPORT
|
|
|
|
#define IGS_RADIAL_BLUR_EXPORT
|
|
|
|
#endif
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
namespace igs {
|
|
|
|
namespace radial_blur {
|
2016-03-19 06:57:51 +13:00
|
|
|
IGS_RADIAL_BLUR_EXPORT void convert(
|
2016-06-15 18:43:10 +12:00
|
|
|
const unsigned char *in /* 余白付き */
|
|
|
|
,
|
|
|
|
const int margin /* 参照画像(in)がもつ余白 */
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
,
|
|
|
|
const unsigned char *ref /* outと同じ高さ、幅、チャンネル数 */
|
|
|
|
,
|
|
|
|
const int ref_bits,
|
|
|
|
const int ref_mode // R,G,B,A,luminance or R,G,B,luminance
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
,
|
|
|
|
unsigned char *out /* 余白なし */
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
,
|
|
|
|
const int height /* 求める画像(out)の高さ */
|
|
|
|
,
|
|
|
|
const int width /* 求める画像(out)の幅 */
|
|
|
|
,
|
|
|
|
const int channels, const int bits
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
,
|
|
|
|
const double xc, const double yc, const double twist_radian = 0.0,
|
|
|
|
const double twist_radius = 0.0,
|
|
|
|
const double intensity = 0.2 /* 強度。ゼロより大きく2以下 */
|
|
|
|
,
|
|
|
|
const double radius = 0.0 /* ぼかしの始まる半径 */
|
|
|
|
,
|
|
|
|
const int sub_div = 4 /* 1ならJaggy、2以上はAntialias */
|
|
|
|
,
|
|
|
|
const bool alpha_rendering_sw = true);
|
|
|
|
#if 0 //-------------------- comment out start ------------------------
|
2016-03-19 06:57:51 +13:00
|
|
|
IGS_RADIAL_BLUR_EXPORT int enlarge_margin( /* Twist時正確でない... */
|
|
|
|
const int height
|
|
|
|
,const int width
|
|
|
|
,const double xc
|
|
|
|
,const double yc
|
|
|
|
,const double twist_radian
|
|
|
|
,const double twist_radius
|
|
|
|
,const double intensity=0.2/* 強度。ゼロより大きく2以下 */
|
|
|
|
/* radius円境界での平均値ぼかしゼロとするためintensityは2以下 */
|
|
|
|
,const double radius=0.0 /* 平均値ぼかしの始まる半径 */
|
|
|
|
,const int sub_div=4 /* 1ならJaggy、2以上はAntialias */
|
|
|
|
);
|
2016-06-15 18:43:10 +12:00
|
|
|
#endif //-------------------- comment out end -------------------------
|
|
|
|
IGS_RADIAL_BLUR_EXPORT int
|
|
|
|
reference_margin(/* Twist時正確でない... */
|
|
|
|
const int height, const int width, const double xc,
|
|
|
|
const double yc, const double twist_radian,
|
|
|
|
const double twist_radius,
|
|
|
|
const double intensity = 0.2 /* 強度。ゼロより大きく2以下 */
|
|
|
|
/* radius円境界での平均値ぼかしゼロとするためintensityは2以下
|
|
|
|
*/
|
|
|
|
,
|
|
|
|
const double radius = 0.0 /* 平均値ぼかしの始まる半径 */
|
|
|
|
,
|
|
|
|
const int sub_div = 4 /* 1ならJaggy、2以上はAntialias */
|
|
|
|
);
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* !igs_radial_blur_h */
|