|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Shinya Kitaoka |
810553 |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef igs_color_blend_h
|
|
Toshihiro Shimizu |
890ddd |
#define igs_color_blend_h
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
namespace igs {
|
|
Shinya Kitaoka |
120a6e |
namespace color {
|
|
Toshihiro Shimizu |
890ddd |
// 01
|
|
Toshihiro Shimizu |
890ddd |
void over(/* アルファ合成(通常) */
|
|
Shinya Kitaoka |
120a6e |
double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 02
|
|
Shinya Kitaoka |
120a6e |
void darken(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 03
|
|
Shinya Kitaoka |
120a6e |
void multiply(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 04
|
|
Toshihiro Shimizu |
890ddd |
void color_burn(/* 焼き込みカラー */
|
|
Shinya Kitaoka |
120a6e |
double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 05
|
|
Toshihiro Shimizu |
890ddd |
void linear_burn(/* 焼き込みリニア */
|
|
Shinya Kitaoka |
120a6e |
double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 06
|
|
Shinya Kitaoka |
120a6e |
void darker_color(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 07
|
|
Shinya Kitaoka |
120a6e |
void lighten(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 08
|
|
Shinya Kitaoka |
120a6e |
void screen(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 09
|
|
Toshihiro Shimizu |
890ddd |
void color_dodge(/* 覆い焼きカラー */
|
|
Shinya Kitaoka |
120a6e |
double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 10
|
|
Toshihiro Shimizu |
890ddd |
void linear_dodge(/* 覆い焼きリニア(単純加算ではない) */
|
|
Shinya Kitaoka |
120a6e |
double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 11
|
|
Shinya Kitaoka |
120a6e |
void lighter_color(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 12
|
|
Shinya Kitaoka |
120a6e |
void overlay(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 13
|
|
Shinya Kitaoka |
120a6e |
void soft_light(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 14
|
|
Shinya Kitaoka |
120a6e |
void hard_light(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 15
|
|
Shinya Kitaoka |
120a6e |
void vivid_light(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 16
|
|
Shinya Kitaoka |
120a6e |
void linear_light(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 17
|
|
Shinya Kitaoka |
120a6e |
void pin_light(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 18
|
|
Shinya Kitaoka |
120a6e |
void hard_mix(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
//-----------------
|
|
Toshihiro Shimizu |
890ddd |
// 19
|
|
Shinya Kitaoka |
120a6e |
void cross_dissolve(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 20
|
|
Shinya Kitaoka |
120a6e |
void subtract(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity, const bool alpha_rendering_sw);
|
|
Toshihiro Shimizu |
890ddd |
// 21
|
|
Toshihiro Shimizu |
890ddd |
void add(/* 単純加算 */
|
|
Shinya Kitaoka |
120a6e |
double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
// 22
|
|
Shinya Kitaoka |
120a6e |
void divide(double &dn_r, double &dn_g, double &dn_b, double &dn_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_r, double up_g, double up_b, double up_a,
|
|
Shinya Kitaoka |
120a6e |
const double up_opacity);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
#endif /* !igs_color_blend_h */
|