09/11/30 08:50:09
>>130
なるほど、一度スクリーンショットでBMPを作成してしまえばいいのですね。
URLリンク(support.microsoft.com)
ちょうどよさげな解説ページも見つけたので合わせて奮闘してみます。
ありがとうございました。
133:デフォルトの名無しさん
09/11/30 08:50:52
ふらっと
134:デフォルトの名無しさん
09/11/30 08:52:48
スレタイの「ふらっと」ってやっぱ#に掛けて♭なわけ?
135:デフォルトの名無しさん
09/11/30 10:25:08
DllImport宣言はCのヘッダを正規表現置換しまくればわりと楽に作れる
136:デフォルトの名無しさん
09/11/30 10:30:08
>>135
APIの宣言部はどうせ手で移植するから置換はあまり使わないな。
ポインタを削ったり、structの名称を変更したりすることもあるし。
どちらかというと、#define定義された定数値をconst intやenumに置き換える作業だな。
数が多いし、単純な変換だからなんとかしたい……。
137:デフォルトの名無しさん
09/11/30 10:32:38
面倒くせーからpinvoke.netからコピペしてそのままだな
138:デフォルトの名無しさん
09/11/30 10:39:22
配列は派生できないでしょうか?
委譲しちゃうとインデクサで速度が落ちるんで
何か方法がないかと検討してるんですが・・
139:デフォルトの名無しさん
09/11/30 10:41:54
無理。
インデクサ呼び出しのオーバーヘッドまで気にするような状況なら
そもそもオブジェクト指向とか考えるのが間違い。配列剥き出しでCみたいに書け。
140:デフォルトの名無しさん
09/11/30 10:43:36
>>101
でも映画館では2倍にして48で上映してるよ。
昔の映画の映像見ればわかるが、さすがに24はちらつく
141:デフォルトの名無しさん
09/11/30 10:59:17
>>139
もしくは、高速化したい部分を隠蔽しちゃうとかね。
142:デフォルトの名無しさん
09/11/30 11:03:36
(16+17+17)*20 = 1000
すごい発見したwwww
16.6666…とかやらなくてもwwwこれなら60fps余裕杉ワロタwwwwww
今特許申請してくるwwwwww
143:デフォルトの名無しさん
09/11/30 11:04:20
>>141
どういうことですか?
144:デフォルトの名無しさん
09/11/30 11:06:07
ん?
つまり3フレームに1回は16msにすれば1秒間中のフレームとしては60フレームになるってことか?
145:デフォルトの名無しさん
09/11/30 11:12:17
>>142
どうせFPSの計算はfloatやdoubleを使うんで関係ない。
146:デフォルトの名無しさん
09/11/30 11:12:43
>>143
内部に持ってる配列をinternalメンバで公開してしまうとか
147:デフォルトの名無しさん
09/11/30 11:28:05
>>146
やっぱそれしかないですよね・・
実行時間のかなりの部分と、書くコードのほとんどに頻繁に
配列を弄繰り回すんで
できればxxx[]って書き方でしかも高速で・・と妄想してるんですが
配列に委譲してインデクサ経由するより
List<T>のインデクサ?の方が早んですよねw
もっとインデクサのパフォーマンス上げてくれ>MS
148:デフォルトの名無しさん
09/11/30 11:42:08
>>147
というか、そんなローレベルなコード書くなら、
そこだけC++/CLIで書いてDLLにしたら?
フロントエンドは従来どおりC#で書けばいい。
149:デフォルトの名無しさん
09/11/30 11:55:44
>配列を弄繰り回すんで
どんな処理なのかわからんが、できそうならキャッシュしちゃうのはだめなの?
150:デフォルトの名無しさん
09/11/30 12:00:03
コンストラクタのオーバーロードを行なう時、
引数の値をそれなりに編集してから別のコンストラクタを呼出したいのですが
: this() だけだと出来ることが制限されすぎでうまくいきません。
どのように解決したらいいんでしょう?
例)
引数に文字列を取るコンストラクタと、複数のパラメータを取るコンストラクタ
class Hoge {
public Hoge(string name) {
Name = name;
LastModified = DateTime.Now;
// etc etc....
}
public Hoge(string pattern, int no, Huga foo) {
Hage baz = new Hage(pattern, no);
Hage.doSomething();
if (foo.Bar > 200)
this(Hage.Result); /// ダメ!
else
this(""); /// アウト!
}
151:デフォルトの名無しさん
09/11/30 12:02:09
private methodに分離しろよそんなの
152:デフォルトの名無しさん
09/11/30 12:03:14
Construct(string)とか別に定義してそっちに移す
Hoge(string)の方はそのメソッドに丸投げ