全然更新しないブログ
HSPメモ帳
ガンマ設定
モジュール mod_SetGamma - ディスプレイのガンマを設定
-
ディスプレイのガンマ値を設定。画面が暗すぎて(明るすぎて)文字が見えない時等に利用可能。
命令:
- SetGamma gamma
- gamma: double値を指定。0.23から4.4位の値を指定。1.0がデフォルト。
mod_SetGamma.hsp
#ifndef MOD_SETGAMMA_HSP_ #define MOD_SETGAMMA_HSP_ #include "user32.as" #include "gdi32.as" #module mod_SetGamma #deffunc SetGamma double gamma sdim ramp, 2* 256 * 3 repeat 256 d = powf((1.0 + cnt) / 256.0, gamma) * 65535 + 0.5 if ( d < 0.0 ){ d = 0.0 } if ( d > 65535.0 ){ d = 65535.0 } i = int(d) & 0xffff tmp = cnt * 2 wpoke ramp, tmp, i wpoke ramp, tmp + 512, i wpoke ramp, tmp + 1024, i loop GetDC 0 : tmp = stat SetDeviceGammaRamp tmp, varptr(ramp) ReleaseDC 0, tmp return #global #endif // MOD_SETGAMMA_HSP_
サンプル
#include "mod_SetGamma.hsp" screen 0, 300, 200 title "mod_SetGamma 0.3 - 4.4" x = ginfo(12) : y = 20 pos 0, 0 winobj "EDIT", "1.0", 0, 0x50000000, 100, y, 0x8000, 0 hEdit = objinfo(stat, 2) winobj "msctls_updown32", "", 0, 0x5000_0024, 0, 0, 0x8001, 0 hUpDown = objinfo(stat, 2) sendmsg hUpDown, 0x0469, hEdit, 0 sendmsg hUpDown, 0x046f, 0, 41 sendmsg hUpDown, 0x0467, 0, 7 pos x - 200, 0 : objsize 200, y button gosub "変更", *SET_GAMMA font msgothic, 32 buf = "■□表示テスト□■" color 32, 32, 32 : boxf 0, y, x, y + 90 color 48, 48, 48: pos 10, y + 25 : mes buf y += 90 color 255, 255, 255 : boxf 0, y, x, y + 90 color 240, 240, 240: pos 10, y + 25 : mes buf oncmd gosub *WM_NOTIFY, 0x004e stop *SET_GAMMA GetWindowText hEdit, varptr(buf), 64 if ( stat == 0 ){ return } d = double(buf) if ( d < 0.2 || 4.4 < d ){ buf = "err" SetWindowText hEdit, varptr(buf) return } SetGamma d return *WM_NOTIFY if ( wparam == 0x8001 ){ dupptr nmUD, lparam, 24, 4 buf = strf("%.1f", 0.1 * nmUD(3) + 0.3) SetWindowText hEdit, varptr(buf) } return</pre>
コメント ( 0 ) | Trackback ( 0 )
« メニュー作成 | DirectWrite » |
コメント |
コメントはありません。 |
コメントを投稿する |