2011年6月25日土曜日

nikki

生産がす: IndexBuffer

/** 三角ポリゴンの追加*/
virtual bool addPolygon(
  const Vertex& vertex1,
  const Vertex& vertex2,
  const Vertex& vertex3 )
{
  const WORD baseIndex = static_cast( m_vertex.size() );
  m_index.push_back( baseIndex + 0 );
  m_index.push_back( baseIndex + 1 );
  m_index.push_back( baseIndex + 2 );

  m_vertex.push_back( vertex1 );
  m_vertex.push_back( vertex2 );
  m_vertex.push_back( vertex3 );

  return true;
}

 頂点をstd::vectorのpush_backで登録してるが、コピーで遅くなるんじゃ……。
と、今日お風呂はいってて気がついた。2年越し。
データもらうんじゃなくて、
ポインタ渡して書き換えてもらうようにすればいくらかマシになるかな。
 
 大して変わらなかった。
実際にレンダリングする処理のほうがよっぽど重いしそんなもんだよなあ。

ring^-27 ver1.0 trial






ring^-27 ver1.00 trial

size: 20MB -> 50MB
 もしくはTEMPERANCE LANCE : ring-^27からダウンロードできます。
 
●動作環境
  Windows XP
  CPU 800MHz以上
  メモリ 256MB以上
  DirectX9.0c以上
 
 
 
●アンインストール
  レジストリは触っておりません。
  削除の際はフォルダごとゴミ箱へどうぞ。
 
 
 
●操作説明
■アンカーモード
  Zキー:ショット(低速)
  Xキー:アンカー
  Cキー:ショット(高速)
  Vキー:ポーズ
 
  アンカーで打ち込んだ敵を倒すと画面上の弾全消し。
  エネルギーがない状態でアンカー打ち込んでるとその敵の攻撃が激しくなり、さらにランクも上がる
 
■ボムモード
  Zキー:ショット(低速)
  Xキー:誘爆ボム
  Cキー:ショット(高速)
  Vキー:ポーズ
 
  敵弾にボムを当てるとどんどん誘爆する。敵にボムが当たるとアンカーを打ち込んだ状態になる
  エネルギーがない状態で誘爆するとランクが上がる
 
 
  詳しくはhelpフォルダ内、index.htmlをご覧ください。
 
 
 
■そのほか
  このソフトウェアを使用し、何らかの障害が発生しても責任を取りかねますのでご了承ください。
 
  zlibライブラリを使用しています。
    Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
    http://www.winimage.com/zLibDll/
 
  libpngライブラリを使用しています。
    Copyright (c) 1998-2007 Glenn Randers-Pehrson
    http://www.libpng.org/
 
 
 
 遊べるのはstage1~stage3までとver0.5と同じですが
敵配置や難易度調整などが最新のものにおきかえられています。

2011年6月22日水曜日

日記ちゃん背景しちへんげ


 stage3の背景だが、ver0.5のときは暗めの色を使っていた。(画像左)
ためしに明るい感じに変更すると敵も弾も俄然見やすくなり、
こりゃいいやとしばらく画像真ん中を使っていた。
最近になって背景制御もいろいろできるようになったので作り直したのが画像右。
 虫姫さまふたりのあの謎の見やすさを見習いたい。
弾の色や大きさ、背景の明るさなんかが肝だと思う。弾速や敵の色なんかも関係してるのかも。
 
 
 
 次世代ブラウザ Firefox - 高速・安全・カスタマイズ自在な無料ブラウザ
 Firefox5を入れてみた。
4も特に不都合なく使えてたが、5も別に不具合はない、いまのところ。
 FireGestures1.6.4がFirefox5に対応してなくて怒られたが、
作者サイトへいくとすでに1.6.5があったのでそれを使ってる。
タブを50ぐらい開くと動作が全体的に重くなのがネック、こまめにタブを閉じなければならない。
 それから一時期、ブックマークを開く動作が異常に遅いときがあったが、
Windowsのテンポラリを削除すると解消された。関連があるのかないのかわからないが。
 
 
 
 SDExolorerなんだか使えないなとおもったら


06-21-2011
SkyDrive web interface has been changed recently, so SDExplorer has stopped working properly. We're working on this problem. Please, check our site for further news updates. Thank you for your patience.


SDExplorer - Fast and Easy Access to Your Live SkyDrive storage from Windows Explorer
 だそうです。
SkyDriveが仕様変更したから対応中だよ!アップデートを待て。って感じのニュアンスだろうか。
 
 
 
 SkyDriveの仕様変更として
・パフォーマンス向上
・HTML5ベースに
・動画の再生可能
・1ファイル100MBまでに
とかなんとか。
[SkyDrive] 新しい SkyDrive の紹介 « Windows Live 最新情報ブログ
 
 ブラウザ経由でアクセスしてみるも、
アップロードしたファイルへのパスの取得の仕方がわからない。
右側の表示の「ダウンロード」の部分のリンクをとりあえず使ってみるが
一覧が表示されてしまい、どのファイルかわかりづらい。選択状態にはなるが。
activeWindowRecorder102

2011年6月20日月曜日

ActiveWindowRecorder ver1.02


activeWindowRecorder102.zip
size: 91.6KB
 
 
 
■概要
 PCで一日何をしていたかログを取るソフトです。
 
 
 
■動作環境
 Windows XP
 CPU 800MHz以上
 メモリ 256MB以上
 
 
 
■アンインストール
 レジストリは触っておりません。
 削除の際はフォルダごとゴミ箱へどうぞ。
 
 
 
■使い方
 起動しっぱなしにするだけ。
 ログはプログラム終了時と日付が変わった直後にlogフォルダに保存されます。
 
 記録されるのは
  時刻
  表示時間
  操作中のウィンドウタイトル
  操作しているプログラムのパス
 の4つです。
 
 outputボタン
  ログをtxtかcsvファイルに出力します
 logボタン
  ログデータを読み込んで表示します
 prevボタン
  現在表示中のログより前のログがあれば表示します
 nextボタン
  現在表示中のログより後のログがあれば表示します
 todayボタン
  今日の最新のログを表示します
 
 タイムラインイメージ
  大雑把に使用時間をプログラム別に着色して表示しています。
  カーソルを乗せると指定時刻付近にリストが自動でスクロールされます。
 
 
 
■そのほか
 このソフトウェアを使用し、何らかの障害が発生しても責任を取りかねますのでご了承ください。
 
 zlibライブラリを使用しています。
  Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
  http://www.winimage.com/zLibDll/
 
 
 
■更新履歴
 2011-06-19 ver1.02
  タイムラインイメージを大きくした
   上半分を24時間のタイムライン、
   下半分を1時間分のタイムラインに変更
 2011-06-17 ver1.01c
  Windowsをシャットダウン、ログオフ時にログを保存するよう修正
  多重起動チェックをするよう修正
 2011-06-15 ver1.01b
  起動直後、ログに同じ項目が現れるのを修正
  起動後すぐ終了するなどで、ログが0のときにセーブしようとすると落ちるのを修正。
   終了時に現在アクティブなウィンドウ情報を更新してから終了するよう修正。
 2011-06-13 ver1.01b(未公開)
  複数選択状態でソートすると処理に時間がかかるのを修正
 2011-06-11 ver1.01
  ログデータを圧縮して保存するよう修正
  output[txt]でプログラム別の使用率の表示順を降順に
 2011-06-11 ver1.00c
  タイムライン利用で複数項目選択を選択したとき、項目数が多いと処理に時間がかかっていたのを修正
 2011-06-09 ver1.00b
  ウィンドウ情報を保存するよう修正
  output[txt]でプログラム別に使用時間と使用率を出力するよう修正
 2011-06-08 ver1.00
  公開

2011年6月18日土曜日

にっきちゃ





 フルスクリーンの需要が多少ありそうなので実装はしてみたが、
・全体に拡大
・比率は維持したまま最大に拡大
・きりのいい倍率に拡大
の3つ候補があがる。
 見てのとおり全体拡大は横に広くなるし、
比率維持拡大は拡大率が3.33倍と半端なため
よこに3ドットだったり4ドットだったりしてがたがたになる。
 きっちり3倍に拡大して画面真ん中に置くのがスマートか。
実際に試してみるまで空白部分が多くて微妙になるんじゃないかとおもったが
意外に気にならないのでこれを採用しようとおもう。
 ゲーム画面が160x144。
フルスクリーン時に640x480にする。
ゲーム画面を4倍にすると640x576となり縦が収まらないので、
3倍の480x432にした。
 
 ゲーム終了時にフルスクリーンを解除してウィンドウに戻してから
ウィンドウサイズなどの設定を保存をする。のだけど、
WM_DESTROYで一連の処理を行ってていたがウィンドウサイズをもとに戻せず
フルスクリーンの設定が保存されてしまう。
WM_DESTROYの段階ではウィンドウがほぼ死んでるんだろう。


この関数は、 メッセージと メッセージをウィンドウに送って、ウィンドウを非アクティブ化し、キーボードの入力フォーカスをウィンドウから取り除きます。また、ウィンドウメニューの破棄、スレッドのメッセージキューのフラッシュ、タイマーの破棄、クリップボードの所有権の解放、クリップボードビューアチェインの切断も行います( ウィンドウがビューアチェインの先頭にあった場合)。


DestroyWindow 関数
なので終了処理をWM_CLOSEで行うように変更した。

2011年6月17日金曜日

にっきちゃ



iPhoneは地味に潤ってていいな。
エスプ2と大復活とバグパニックぐらい?

2011年6月15日水曜日

ActiveWindowRecorder ver1.01b


activeWindowRecorder101b.zip
size: 90.6KB
 
[Vector]
ActiveWindowRecorder
 
 
■概要
 PCで一日何をしていたかログを取るソフトです。
 
 
 
■動作環境
 Windows XP
 CPU 800MHz以上
 メモリ 256MB以上
 
 
 
■アンインストール
 レジストリは触っておりません。
 削除の際はフォルダごとゴミ箱へどうぞ。
 
 
 
■使い方
 起動しっぱなしにするだけ。
 ログはプログラム終了時と日付が変わった直後にlogフォルダに保存されます。
 
 記録されるのは
  時刻
  表示時間
  操作中のウィンドウタイトル
  操作しているプログラムのパス
 の4つです。
 
 outputボタン
  ログをtxtかcsvファイルに出力します
 logボタン
  ログデータを読み込んで表示します
 prevボタン
  現在表示中のログより前のログがあれば表示します
 nextボタン
  現在表示中のログより後のログがあれば表示します
 todayボタン
  今日の最新のログを表示します
 
 タイムラインイメージ
  大雑把に使用時間をプログラム別に着色して表示しています。
  カーソルを乗せると指定時刻付近にリストが自動でスクロールされます。
 
 
 
■そのほか
 このソフトウェアを使用し、何らかの障害が発生しても責任を取りかねますのでご了承ください。
 
 zlibライブラリを使用しています。
  Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
  http://www.winimage.com/zLibDll/
 
 
 
■更新履歴
 2011-06-15 ver1.01b
  起動直後、ログに同じ項目が現れるのを修正
  起動後すぐ終了するなどで、ログが0のときにセーブしようとすると落ちるのを修正。
   終了時に現在アクティブなウィンドウ情報を更新してから終了するよう修正。
 2011-06-13 ver1.01b(未公開)
  複数選択状態でソートすると処理に時間がかかるのを修正
 2011-06-11 ver1.01
  ログデータを圧縮して保存するよう修正
  output[txt]でプログラム別の使用率の表示順を降順に
 2011-06-11 ver1.00c
  タイムライン利用で複数項目選択を選択したとき、項目数が多いと処理に時間がかかっていたのを修正
 2011-06-09 ver1.00b
  ウィンドウ情報を保存するよう修正
  output[txt]でプログラム別に使用時間と使用率を出力するよう修正
 2011-06-08 ver1.00
  公開

2011年6月14日火曜日

にっきちゃん

バトル予備校 ‐ ニコニコ動画(原宿)
 人類には早すぎるランキング~18thシーズン~ ‐ ニコニコ動画(原宿)を見てたらフラット出てきたこれが超見覚えある場所でびっくりした。
考えてみれば同じ年代の人が作った映像作品を見られるなんて貴重な体験だったかもしれんね。

2011年6月12日日曜日

にっきちゃ

 ケツイ5面の曲をみみこぴして遊んでたが、
3日もかかった上に8和音以上つかってて死にたい。プロの技に脱帽せざるを得ない。
テンポ半分にして5面バグを再現して遊んだら満足した。
 
 複数選択したままソートすると時間計算処理にえらい時間がかかるバグを発見。
ソート後、選択解除、再選択処理の際、
ひと項目ずつ選択処理をするたびにトータル時間を計算しなおすので
たくさん選択していると毎回時間計算して処理を食う。たぶんO(n^2)回。
 ListView_SetItemState( hList, iItem, LVIS_SELECTED, LVIS_SELECTED );
で選択状態にするとWM_NOTIFYのLVN_ITEMCHANGEDが送信されてくるため起こる。
ver1.01をVectorに登録したので反映されるまで保留。

2011年6月11日土曜日

ActiveWindowRecorder ver1.01


activeWindowRecorder101.zip
size: 90.3KB
 
 
■概要
 PCで一日何をしていたかログを取るソフトです。
 
 
 
■動作環境
 Windows XP
 CPU 800MHz以上
 メモリ 256MB以上
 
 
 
■アンインストール
 レジストリは触っておりません。
 削除の際はフォルダごとゴミ箱へどうぞ。
 
 
 
■使い方
 起動しっぱなしにするだけ。
 ログはプログラム終了時と日付が変わった直後にlogフォルダに保存されます。
 
 記録されるのは
  時刻
  表示時間
  操作中のウィンドウタイトル
  操作しているプログラムのパス
 の4つです。
 
 outputボタン
  ログをtxtかcsvファイルに出力します
 logボタン
  ログデータを読み込んで表示します
 prevボタン
  現在表示中のログより前のログがあれば表示します
 nextボタン
  現在表示中のログより後のログがあれば表示します
 todayボタン
  今日の最新のログを表示します
 
 タイムラインイメージ
  大雑把に使用時間をプログラム別に着色して表示しています。
  カーソルを乗せると指定時刻付近にリストが自動でスクロールされます。
 
 
 
■そのほか
 このソフトウェアを使用し、何らかの障害が発生しても責任を取りかねますのでご了承ください。
 
 zlibライブラリを使用しています。
  Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
  http://www.winimage.com/zLibDll/
 
 
 
■更新履歴
 2011-06-11 ver1.01
  ログデータを圧縮して保存するよう修正
  output[txt]でプログラム別の使用率の表示順を降順に
 2011-06-11 ver1.00c
  タイムライン利用で複数項目選択を選択したとき、項目数が多いと処理に時間がかかっていたのを修正
 2011-06-09 ver1.00b
  ウィンドウ情報を保存するよう修正
  output[txt]でプログラム別に使用時間と使用率を出力するよう修正
 2011-06-08 ver1.00
  公開

ActiveWindowRecorder ver1.00c


activeWindowRecorder100c.zip
size: 65.5KB
 
 
■概要
 PCで一日何をしていたかログを取るソフトです。
 
 
 
■動作環境
 Windows XP
 CPU 800MHz以上
 メモリ 256MB以上
 
 
 
■アンインストール
 レジストリは触っておりません。
 削除の際はフォルダごとゴミ箱へどうぞ。
 
 
 
■使い方
 起動しっぱなしにするだけ。
 ログはプログラム終了時と日付が変わった直後にlogフォルダに保存されます。
 
 記録されるのは
  時刻
  表示時間
  操作中のウィンドウタイトル
  操作しているプログラムのパス
 の4つです。
 
 outputボタン
  ログをtxtかcsvファイルに出力します
 logボタン
  ログデータを読み込んで表示します
 prevボタン
  現在表示中のログより前のログがあれば表示します
 nextボタン
  現在表示中のログより後のログがあれば表示します
 todayボタン
  今日の最新のログを表示します
 
 タイムラインイメージ
  大雑把に使用時間をプログラム別に着色して表示しています。
  カーソルを乗せると指定時刻付近にリストが自動でスクロールされます。
 
 
 
■更新履歴
 2011-06-11 ver1.00c
  タイムライン利用で複数項目選択を選択したとき、項目数が多いと処理に時間がかかっていたのを修正
 2011-06-09 ver1.00b
  ウィンドウ情報を保存するよう修正
  output[txt]でプログラム別に使用時間と使用率を出力するよう修正
 2011-06-08 ver1.00
  公開

2011年6月9日木曜日

ActiveWindowRecorder ver1.00b


activeWindowRecorder100b.zip
size: 65.4KB



■概要
 PCで一日何をしていたかログを取るソフトです。



■動作環境
 Windows XP
 CPU 800MHz以上
 メモリ 256MB以上



■アンインストール
 レジストリは触っておりません。
 削除の際はフォルダごとゴミ箱へどうぞ。



■使い方
 起動しっぱなしにするだけ。
 ログはプログラム終了時と日付が変わった直後にlogフォルダに保存されます。

 記録されるのは
  時刻
  表示時間
  操作中のウィンドウタイトル
  操作しているプログラムのパス
 の4つです。

 outputボタン
  ログをtxtかcsvファイルに出力します
 logボタン
  ログデータを読み込んで表示します
 prevボタン
  現在表示中のログより前のログがあれば表示します
 nextボタン
  現在表示中のログより後のログがあれば表示します
 todayボタン
  今日の最新のログを表示します

 タイムラインイメージ
  大雑把に使用時間をプログラム別に着色して表示しています。
  カーソルを乗せると指定時刻付近にリストが自動でスクロールされます。



■更新履歴
 2011-06-09 ver1.00b
  ウィンドウ情報を保存するよう修正
  output[txt]でプログラム別に使用時間と使用率を出力するよう修正
 2011-06-08 ver1.00
  公開

2011年6月8日水曜日

ActiveWindowRecorder ver1.00


Active Window Recorder
ver 1.00
size: 63.9KB
 
 
■概要
 PCで一日何をしていたかログを取るソフトです。
 
 
 
■動作環境
 Windows XP
 CPU 800MHz以上
 メモリ 256MB以上
 
 
 
■アンインストール
 レジストリは触っておりません。
 削除の際はフォルダごとゴミ箱へどうぞ。
 
 
 
■使い方
 起動しっぱなしにするだけ。
 ログは終了時と日付が変わった直後にlogフォルダに保存されます。
 
 記録されるのは
  時刻
  表示時間
  操作中のウィンドウタイトル
  操作しているプログラムのパス
 の4つです。

 outputボタン
  ログをtxtかcsvファイルに出力します
 logボタン
  ログデータを読み込んで表示します
 prev
  現在表示中のログより前のログがあれば表示します
 next
  現在表示中のログより後のログがあれば表示します
 today
  今日の最新のログを表示します

 タイムラインイメージ
  大雑把に使用時間をプログラム別に着色して表示しています。
  カーソルを乗せると指定時刻付近にリストが自動でスクロールされます。
 
 
 
■更新履歴
 2011-06-08 ver1.00
  公開


 ウィンドウ情報(サイズとか)をiniファイルに保存するつもりだったのをすっかり忘れてたよ。
1週間製作の予定だったが延長戦だ……!

2011年6月7日火曜日

日記ちゃん


 一通り主要機能をつけ終えて、
あとは過去ログ参照できればオッケーかなーとかおもってたが、
過去ログ表示しつつも現在のアクティブ情報を記録しなければならないことに気がついた。
今さっき。げー。
 ListView表示用のメモリと情報蓄積用のメモリの2重に用意する必要がある。
書きながら考えてみたら、そんなに大変でもないか。
変数名の命名が一番大変、次に実装が大変。

2011年6月3日金曜日

SS_BITMAPでうまくいかないパターン

 SS_BITMAPを指定したstatic controlに
CreateCompatibleBitmapで作成したHBITMAPを
STM_SETIMAGEで設定してもうまく表示されない現象に遭遇した。
 LoadImageしたHBITMAPだとうまく表示されるのに何でだよ。
それじゃあと思い、
LoadImageなHBITMAPに
CreateCompatibleDCなHDCをSelectObjectしてSTM_SETIMAGEすると表示されなくなる。
 SelectObjectがいかんのか? と、
とりあえずHBITMAPはSTM_SETIMAGEしておいて、
表示更新するときだけSelectObjectでHDCと関連付けしてBitBltなどで書き換え、
その後、SelectObject解除としたらうまく表示できた。
中でなにやってるのか知らないけど、SelectObjectに注意されたし。
 
 アニメーションさせようと、
とりあえずstatic controlにDIBSectionで作成したHBITMAPを渡しておいて
あとはピクセルを書き換えたらオッケーかなあとおもっていたが、
描画内容は反映されなかった。
意味ねえ。コピーがとられるだけなのかな。
 結局、一定周期おきにstatic controlからGetDCしてBitBltしてやる方法を取ることに。
すげえ遠回りしてこれかよ!
この方法の場合SS_BITMAPを指定する必要すらなし。
でもサイズ設定がおもうようにいかないのと、描画がずれたりするっぽいのでとりあえず一回STM_SETIMAGEしておくのが無難そう。


In version 6 of the Microsoft Win32 controls, a bitmap passed to a static control using the STM_SETIMAGE message was the same bitmap returned by a subsequent STM_SETIMAGE message. The client is responsible to delete any bitmap sent to a static control.

With Windows XP, if the bitmap passed in the STM_SETIMAGE message contains pixels with nonzero alpha, the static control takes a copy of the bitmap. This copied bitmap is returned by the next STM_SETIMAGE message. The client code may independently track the bitmaps passed to the static control, but if it does not check and release the bitmaps returned from STM_SETIMAGE messages, the bitmaps are leaked.


STM_SETIMAGE Message (Windows)
 とかなんとかでSTM_SETIMAGEしたときの戻り値をDeleteObjectしたらエラー出た。
コピーとるんじゃないのかよ! 
いまひとつ良くわからないが、
セットするHBITMAPはHDCにSelectObjectされているとちゃんと表示してくれないというのだけが確定してる。自分の環境では。
 
 それからstatic control上でカーソル位置を取得に
SetTimerを使い、一定周期おきにGetCursorPosすることで方法をとった。
SS_NOTIFYを指定してWM_NOTIFYがこないかなと期待したが、
代わりにWM_COMMANDがくるらしく、しかもMOUSEMOVEは飛んでこないっぽい。
いい方法ではないが仕方なし。

2011年6月1日水曜日

日記ちゃん


生産がす: アクティブなウィンドウのハンドルからファイルパス取得
 いつか作ろうとおもっていた「1日なにやってたかを記録するアプリケーション」を仮作成。
記録するデータは
・操作開始時間
・操作時間
・ウィンドウのタイトル
・プログラムのパス
でアクティブなウィンドウが切り替わるたびにメモリに追記していく仕様にした。
 一日分のデータをとったところ、約4MBほど使用した。1ヶ月で124MB。さすがに消費が多すぎる。
今日のデータ以外はzipで圧縮するとか、
プログラムパスは変化が少ないのでIDで保存することでデータ量を減少させるとかで対策してみている。未テスト。
 
 プログラムファイルパスを文字列からID管理にして、丸一日実行してみたら約1MBになった。
全データ約1500。そのうちプログラムパスは25種だった。
データの大半がブラウザだった。
ブラウザは使用率が高いしウィンドウのタイトルもころころ変わるから納得の結果だ。
使用時間が長いのが動画やゲーム関係だった。
あまり参考にならない。