OSDN Git Service

ライセンスをMIT-Styleに変更,DLL内にライセンス埋め込み
[kimikage-nscr/kimikage-nscr.git] / nsdfont / src / ColorBlender.cpp
1 /*\r
2  *      Kimikage NScripter Plugins Project\r
3  *\r
4  *      This software is distributed under a MIT-style license.\r
5  *      See license.txt for more information.\r
6  */\r
7 \r
8 #include "ColorBlender.h"\r
9 \r
10 namespace nsdfont\r
11 {\r
12         ColorBlender::ColorBlender( void )\r
13         {\r
14         }\r
15 \r
16         ColorBlender::~ColorBlender( void )\r
17         {\r
18         }\r
19 \r
20         ColorBlender::MulTable::MulTable( void )\r
21         {\r
22                 size_t i = 0;\r
23                 for( int y = 0; y < 256; ++y )\r
24                 {\r
25                         int acc = 0;\r
26                         for(;;)\r
27                         {\r
28                                 table[i++] = static_cast<unsigned char>( (acc + 255) / 510 );\r
29                                 if ( (i & 0xFF) == 0 ) break;\r
30                                 acc += y + y;\r
31                         }\r
32                 }\r
33         }\r
34 \r
35         ColorBlender::DivTable::DivTable( void )\r
36         {\r
37                 size_t i = 0x100;\r
38                 for( int divider = 1; divider < 256; ++divider )\r
39                 {\r
40                         const int divider2 = divider << 1;\r
41                         for( int x = 0; x < 256 * 510; x += 510 )\r
42                         {\r
43                                 // x <= divider2 \82Å\83I\81[\83o\81[\83t\83\8d\81[\r
44                                 table[i++] = static_cast<unsigned char>( (x + divider) / divider2 );\r
45                         }\r
46                 }\r
47         }\r
48         \r
49         const ColorBlender::MulTable ColorBlender::mulTable;\r
50         const ColorBlender::DivTable ColorBlender::divTable;\r
51 }