waiei -blog-

その日の出来事を簡単に紹介する日記

蜃気楼1.26

2017-08-15-Tue-17:30
拍手レス
蜃気楼とても重宝しています。
1.251辺りからなのですが自作疑似カーソルが縦70ピクセル以下だと正常に縮小されずに縦につぶれた感じに表示されてしまいます。80ピクセル以上は正常なようです。
(moimoiさん)
ありがとうございます、現象を確認しました。
1.251でカーソルの縦または横が1ピクセル未満になったときに強制終了する不具合を修正したのですが、
この修正内容が、縦または横が32ピクセル未満になった場合32ピクセルで固定するという修正だったため縦横比を無視してしまっていました。
1.26でどちらか片方が32ピクセル未満になった場合はそれ以上縮小しないという方法に変更したため、縦横比が崩れるようなことはなくなったと思います。




こんにちは、A.Cです。

おまたせしました!
蜃気楼

蜃気楼1.26にバージョンアップしました!


まず、バージョンアップ内容の説明に入る前に、
今回のバージョンアップでいったん開発終了です!

というのもそろそろ追加する機能もなくなってきたことと、ソースがごちゃごちゃしてきたこと、
なにより…

初期バージョン
蜃気楼1.00

現バージョン
蜃気楼1.26

なんかごちゃごちゃしてダサくなってきた

機能増えると便利なんだけどシンプルさがなくなるので使いにくくなるんですよね。
あと単純にボタンやらオブジェクトやらをいっぱい詰め込んであるのが美しくない。

というわけでごっそり作り直そうかなと思います。
作り直すとしたら、Aero必須にするつもりなので、
ベーシックテーマやクラシックテーマを使用している環境だと動かなくなります。
というかAero切ることができるWindows7以前は切り捨てるつもりです。
余計な処理書かなくて済むので。

あとはHSP以外の言語で作り直したいなーというのもあります。
コールバックや定数定義とか考えるとHSPでツール作るのは大変すぎる…。




さて新機能の紹介。

拡大率の直接入力対応
拡大率の直接入力

前から要望があった機能です。拡大率のテキストをクリックすると入力できます。
(必要なのかわかりませんが)小数第1位まで入力可能なのでかなり細かく調整できます。
スライダーだと300%までですが、この入力だと500%までOKです!

設定の保存・読み込み
設定の保存・読み込み
現在の設定をsnkr形式で保存します。
読み込みを行うと、保存時に選択していたアプリ・設定で起動するので
アプリごとに設定を分けて保存することができるようになりました!
ちなみにsnkrファイルは蜃気楼のアプリのアイコンへドロップ、蜃気楼のメインウィンドウへドロップ、エクスプローラー右クリックメニューの「プログラムから開く」で蜃気楼を選択のいずれかでも読み込むことができるので、常に蜃気楼で開くようにしておくことでダブルクリックで開けるようになります!

あとは細かいバグ修正です。
詳しくは蜃気楼ページの更新履歴を確認してください。

ひとまずこれでアプリとしては必要な機能がそろったんじゃないかなと思います。
A.Cの次回作にご期待ください!

え、WinSizeChanger3?
…正直こっちそんなに使う機会無いから更新ほぼ止まってる…

蜃気楼の画質向上

2017-05-07-Sun-01:00
※5/7 AM9:00追記あり

こんにちは、A.Cです。
昨日も記事を更新したばかりですが、蜃気楼の拡大時画質向上に成功したので緊急でバージョンアップしました。

蜃気楼1.25

旧バージョン
1.24
※クリックして拡大

新バージョン
1.25
※クリックして拡大

Windows7の時は新バージョンと同様の画質で拡大していたのですが、
Windows8以降かなり画質が落ちていました。

で、Windows10のCreatorsUpdateから画質が復活したという情報を以前から耳にしていたのですが相変わらず蜃気楼の画質が低かったのでそんなことはないのではと思っていました。
ところが、DWMAPIのサムネイル機能のサンプルプログラムをいじっていたら特定条件下に限り画質が向上することがわかりました。

条件とは、 DwmUpdateThumbnailProperties 関数でDWM_THUMBNAIL_PROPERTIESのfSourceClientAreaOnlyをtrueにすることでした。

つまりどういうことなのという話ですが、このフラグを有効にすることで対象のウィンドウのクライアント領域(ウィンドウフレームやタイトルバーを除いた部分)のみを拡大対象にすることができます。
今までの蜃気楼は、ここのフラグをfalseに設定してウィンドウ全体を取得、タイトルバー等を表示しないように位置をずらして表示させていたために今回の画質向上の恩恵を受けられなかったみたいです。(何故ウインドウ全体なら低画質のままなのかは謎ですが)

何故そんな面倒なことをしていたのかというと、ここのフラグを有効にしてもウィンドウ全体が取得されていたためです。
まあ、実際は設定しているのに反映されないわけがないのですが、これはHSPで開発しているのが原因の一つでもあります。

通常であれば、DWM_THUMBNAIL_PROPERTIESのページに書かれている通り、fSourceClientAreaOnlyをtrueにするだけでいいのですが、HSPでは「fSourceClientAreaOnly」が定義されているわけがなく、自分で設定する必要があります。
DWM_THUMBNAIL_PROPERTIESの定義部分のソースは以下のようになっています。
#define DWM_TNP_RECTDESTINATION 0x00000001  
#define DWM_TNP_RECTSOURCE 0x00000002
#define DWM_TNP_OPACITY 0x00000004
#define DWM_TNP_VISIBLE 0x00000008
#define DWM_TNP_SOURCECLIENTAREAONLY 0x00000010
    dwFlags=DWM_TNP_RECTDESTINATION | DWM_TNP_RECTSOURCE | DWM_TNP_OPACITY | DWM_TNP_VISIBLE | DWM_TNP_SOURCECLIENTAREAONLY
    dim tnProperties,11
    lpoke tnProperties,  0, dwFlags
    lpoke tnProperties,  4, 0
    lpoke tnProperties,  8, 0
    lpoke tnProperties, 12, drawx
    lpoke tnProperties, 16, drawy
    lpoke tnProperties, 20, 0
    lpoke tnProperties, 24, 0
    lpoke tnProperties, 28, crect(2)
    lpoke tnProperties, 32, crect(3)
    poke  tnProperties, 36, 255
    poke  tnProperties, 37, 1       ;0なら不可視
    poke  tnProperties, 41, 1       ;1ならクライアント領域のみ

要するに構造体は連続したメモリにデータを入れたものになるのですが、最後の行に書かれている41バイト目のここが1の時にfSourceClientAreaOnlyがtrueとなります。さて、じゃあこの41バイト目というのはどこから出てくるのかという話ですが、DWM_THUMBNAIL_PROPERTIESのページに書かれている順に定義するので、それぞれの値サイズずつずらして代入していきます。




DWORD dwFlags;0バイト目から4バイト分
RECT rcDestination;4バイト目から4バイト分×4
RECT rcSource;20バイト目から4バイト分×4
BYTE opacity;36バイト目から1バイト分
BOOL fVisible;37バイト目から4バイト分
BOOL fSourceClientAreaOnly;41バイト目

はい、上の赤字部分、BOOL(trueかfalseか)なのに4バイトあります。今までここは1バイトだと思い込んでいたので38バイト目から1バイトを書き換えていたのですが反映されていなかったわけです。わかるかー

とにかくまあ、いろいろいじっていたら上記原因が解明できたので1.25に反映しました。

ちなみにですが、クライアント領域を取得した場合、Aeroの合成部分は黒色になります。
例えばエクスプローラーを拡大対象にした時がわかりやすいと思います。
1.25Aero

タイトルバーが黒くなっています。これはDWMによってウインドウを合成する前の状態を取得しているためなので、対応できません。仕様です。

1.24では合成後のウインドウを取得しているためしっかりと色が付きます。
1.24Aero

大した問題はないと思いますし、画質を落としてまで1.24表示にする必要はないと思いますが、settings.iniを編集することで1.24モードの表示に戻すことができます。詳しくはreadmeを参照してください。

追記:ちょっといじったら黒色問題は対応できたので1.251として更新しました。5/7の9:00以前にDLされた方はお手数ですが再DLをよろしくお願いします。

まあクライアント領域のみ取得とか言ってたのに実際は余計な部分まで取ってたりしたんでそのあたりどうやって消すかいろいろ試行錯誤しましたががが

Web拍手レス

2014-02-06-Thu-02:48
Web拍手レス
>BBSが無いのでこちらで質問させていただきます。
>以下のエラーが出ます。どういったエラーなのかわかりません。
>よろしければ教えて下さい。
>Error1
>-->内部エラーが発生しました(1)ソフト関係がイイネ!
>先ほどの質問は蜃気楼に関してです。すみません。
(takuroさん)
報告ありがとうございます。
BBSはサービスが終了してしまったのと、僕が気付かない為
現在設置していません。
基本的にはTwitterでメッセージを送ってもらえると対応します。
今回は、この記事のみコメントを受け付けるようにしましたので、
こちらに書き込みをお願いします。

久しぶりのツール

2013-12-29-Sun-00:30
Web拍手レス
>I like waiei theme!and I wish it become better.
>StepMania関係がイイネ!(CrzPさん)

ありがとうございます!
StepMania5は拡張性のあるテーマが作成できて本当に楽しいです。
これからもよろしくお願いします!




蜃気楼
日記マンガ

あかやとましろはどんなキャラだったか
すでに忘れ気味…ゲフンゲフン





こんにちは、A.Cです。
そんなわけでWinSizeChangerの後継ソフト、蜃気楼を公開しました。

⇒ダウンロードはこちら

マンガにも出ていましたが、花映塚以前の東方原作の
ウインドウサイズを大きくしたり、
あるいは風神録以降を640x480で起動した後このソフトで拡大すると
きれいに拡大されます。
標準機能で拡大した場合との比較はこんな感じです。
(クリックで画像拡大)
東方地霊殿画質比較
また、WSCではDirectXで画面描画しているゲーム限定でしたが、
蜃気楼ではどんなソフトでもきれいに拡大表示できます。
※おそらく東方原作の標準機能の拡大は、
 WSC2とやっていること自体は同じかと。

このソフトがどういうつくりになっているのかは
蜃気楼の専用ページを見てもらえればだいたいわかると思いますが、
具体的には対象ウインドウとは別に拡大用のウインドウを生成し、
そこに画面をコピーしているわけです。
蜃気楼の内部構造
つまり実態とは別に触ることのできないウインドウが見えるので
「蜃気楼」という名前になっています。

でもこれ動作が重くなるんじゃ…と思ったそこのあなた!
大丈夫、Aeroが有効環境だとOSの機能でクローン画面を生成できます。
Vista以降でAeroが有効な場合、タスクバーにカーソルを持っていくと
ウインドウのサムネイルが表示されると思いますが、
あれを大きくして表示してるのがこのソフトです。
ウインドウサムネイル
この機能ですね。

ただしこの機能、Aeroが有効な時だけしか動作しないので、
XPやAero無効環境だと定期的に対象ウインドウの画面を
キャプチャする処理を行っています。
現バージョンのこの動作はCPUで行われるので
Aero無効だと場合によっては若干重くなるかもしれません。

まあ、直感的に使えるつくりになっているので
ぜひ一度お試しください!




その他

ハタアゲわいえいがHSPプログラムコンテストで
ふりーむ!賞を受賞しました!ありがとうございます!


そして今僕の背後には賞品のデリシャススティック1年分が
置かれていますw
デリシャススティック

そしてそのハタアゲわいえいをバージョン1.10に更新しました。
詳しくはハタアゲわいえいの専用ページを参照してください。

⇒ハタアゲわいえい




もひとつ

StepMania5.0専用テーマwaieiを1.331に更新しました。


1.33は互換アップデートと題し、
曲を好きな順番にソートさせる機能やカロリー表示などを
実装しています。

そしてそのwaieiで最適に遊べるパッケージ、
FIXED Project5 -waiei Extended- Appendを
クリスマス企画としてバージョンアップ!
Append3になりました。


有名なゲーム楽曲アレンジ4曲と、
かなりの高難易度ボス曲を追加しています!
まだ遊んでないよ!って方はぜひ遊んでみてください。

ではでは、相変わらずの宣伝だらけですが今回はこの辺で~。

HSPプログラムコンテスト参加なう

2013-11-13-Wed-22:00
帰ってきたハタアゲ
日記マンガ

そんなわけでハタアゲわいえい公開中です!




こんにちは、A.Cです。
数年ぶりにゲーム作って公開しました!

このゲーム、HSPプログラムコンテスト2013にも出展してるので
もしよかったら感想などよろしくお願いします><

久しぶりのゲームですが、実は以前このサイトで公開していた
「3本バナナのハタアゲ」というゲームのシステムを引き継いでいます。
3バナは当時の技術量的な問題で音ゲー要素はなく、
赤・あげ・てと同じ感覚で「ピッ」と笛の音が鳴るのでそのタイミングで
操作すると高得点というルールでした。(ちなみに1ミスでゲームオーバーです)
これを4拍子の曲に合わせることでプレイしやすくしたのが今回作成したゲームです。
ストーリーモード搭載ですが、ノーコンテニュークリアの場合大体20分程度で終わると思います。

楽曲はStepManiaパッケージ企画の
FIXED ProjectRELATIVE Projectでおなじみの曲です。
また、最新のFIXED Projectにはハタアゲわいえいの楽曲を
3曲追加する解禁ファイルが同梱されているのでこの機会にぜひ遊んでみてください。
せっかく特殊ルール機能があるのに、本編ではあまり活かせてなかったので隠し曲の方で使っています。

最近何かと作品のタイトルに「waiei」または「わいえい」の文字が入っているのでそろそろ自嘲しないとなーと思う今日この頃。
HOME NEXT