OSDN Git Service

NSDフォントプラグイン登録
[kimikage-nscr/kimikage-nscr.git] / nsdfont / src / ColorBlender.cpp
diff --git a/nsdfont/src/ColorBlender.cpp b/nsdfont/src/ColorBlender.cpp
new file mode 100755 (executable)
index 0000000..6926ce1
--- /dev/null
@@ -0,0 +1,51 @@
+/*\r
+ *     Kimikage NScripter Plugins Project\r
+ *\r
+ *     This software is distributed under a BSD-style license.\r
+ *     See license.txt for more information.\r
+ */\r
+\r
+#include "ColorBlender.h"\r
+\r
+namespace nsdfont\r
+{\r
+       ColorBlender::ColorBlender( void )\r
+       {\r
+       }\r
+\r
+       ColorBlender::~ColorBlender( void )\r
+       {\r
+       }\r
+\r
+       ColorBlender::MulTable::MulTable( void )\r
+       {\r
+               size_t i = 0;\r
+               for( int y = 0; y < 256; ++y )\r
+               {\r
+                       int acc = 0;\r
+                       for(;;)\r
+                       {\r
+                               table[i++] = static_cast<unsigned char>( (acc + 255) / 510 );\r
+                               if ( (i & 0xFF) == 0 ) break;\r
+                               acc += y + y;\r
+                       }\r
+               }\r
+       }\r
+\r
+       ColorBlender::DivTable::DivTable( void )\r
+       {\r
+               size_t i = 0x100;\r
+               for( int divider = 1; divider < 256; ++divider )\r
+               {\r
+                       const int divider2 = divider << 1;\r
+                       for( int x = 0; x < 256 * 510; x += 510 )\r
+                       {\r
+                               // x <= divider2 \82Å\83I\81[\83o\81[\83t\83\8d\81[\r
+                               table[i++] = static_cast<unsigned char>( (x + divider) / divider2 );\r
+                       }\r
+               }\r
+       }\r
+       \r
+       const ColorBlender::MulTable ColorBlender::mulTable;\r
+       const ColorBlender::DivTable ColorBlender::divTable;\r
+}
\ No newline at end of file