goo

ガンマ設定

モジュール 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 »
 
コメント
 
コメントはありません。
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。