MFCメモ
モードレスダイアログをつくるとき、newでインスタンスをつくったら
PostNcDestroyをオーバーライドしてその中でdelete thisする。
そうすると、ダイアログが閉じられたときに自動的にdeleteされる。
モードレスダイアログをつくるとき、newでインスタンスをつくったら
PostNcDestroyをオーバーライドしてその中でdelete thisする。
そうすると、ダイアログが閉じられたときに自動的にdeleteされる。
VisualC++2003ではコンパイルオプションに「拡張命令セットの有効化」というのがあります。
これをSSEにすると、なんとCで書いた普通のfloat計算のコードがSSEのスカラー演算命令を使ったコードとしてコンパイルされて出力されます!
今まではsqrtなどの組み込み関数がSSEで最適化されたされたやつに切り替わるくらいかなと思っていたのですが予想以上の効果があるようです。
同様にオプション設定でSSE2を選択するとdouble計算のコードも最適化されるものと思われます。(こっちは未確認)
今月はHacker's Delightを買いました。
かなり以前から欲しいと思っていた本なのですが、後回しになっていました。
内容はまだほとんど読んでいないですが、
ビット演算だけでびっくりするようなことをしています。
計算速度が要求されるようなプログラムを書く人にとってはすごく参考になる本です。
メンバ関数テンプレートの挙動を、とある引数に対してのみ変更したい場合の選択肢としてテンプレートの特殊化とオーバーロードがあります。
struct ClassA {
// メンバ関数テンプレート
template<typename T> void Func(T value) {
...
}
// テンプレートの特殊化
template<> void Func<int>(int value) {
...
}
// オーバーロード
void Func(float value) {
...
}
};struct ClassA {
// テンプレートメンバ関数
template<typename T> void Func(T value) {
...
}
};#include "ClassA.h"
// テンプレートの特殊化
template<> void ClassA::Func<int>(int value) {
...
}
VisualCは何年か使ってますが、全然しりませんでした。
あまりの衝撃にこっちにもメモw
クイックウォッチでエラーコードとその内容を表示する
内容がないのもなんなので、追記。
例外が発生した箇所でBreakしたい場合は、「デバッグ」メニューの「例外」で設定することができます。(Visual C++ .NET 2003)
指定した例外以外にも色々な特殊な状況でBreakしたりしなかったりが設定できます。
1080iのビデオ(解像度は1920 x 1080)のトランジション処理をGPUにさせるとします。
ビデオデータの転送量は
1920 x 1080 x 4Byte(32bpp) x 30fps = 248,832,000 Byte/sec
です。
トランジションは入力が2つ、出力が1つ発生するので、入力に474MB/s、出力に237MB/s、計711MB/sのデータ転送が発生します。
| 各種バスの転送速度 | |
|---|---|
| PCI 33MHz | 133MB/s |
| PCI 66MHz | 533MB/s |
| AGP 1x | 266MB/s |
| AGP 2x | 533MB/s |
| AGP 4x | 1.06GB/s |
| AGP 8x | 2.13GB/s |
| PCI Express 1x | 500MB/s |
| PCI Express 2x | 1GB/s |
| PCI Express 4x | 2GB/s |
| PCI Express 8x | 4GB/s |
| PCI Express 12x | 6GB/s |
| PCI Express 16x | 8GB/s |
| PCI Express 32x | 16GB/s |
プログラミングMicrosoft DirectX9 グラフィックスパイプライン
という本をプレゼントされました。DirectX9シェーダの本です。
シェーダには興味がありつつもまだ手をつけていなかったので、
これを機にぼちぼちやっていこうかなーという感じです。
© Blogger template 'Isolation' by Ourblogtemplates.com 2008
Back to TOP