C#でDirectX9 初心者の館
■ このスレッドは過去ログ倉庫に格納されています
0372デフォルトの名無しさん
NGNGSurface を Lock して、左上と思しきアドレスから、1ピクセル分と思しき
サイズ (2バイト〜4バイト) だけデータを読んで、RGB部分を取り出して使う。
たぶんこんな感じ。
byte [] pixels = bmpSurf.Lock();
switch (description.PixelFormat.RgbBitCount + description.PixelFormat.AlphaBitDepth ) // RGB と仮定
{
case 15: val = pixels[1]*256 + pixels[0]; break;
case 16: val = pixels[1]*256 + pixels[0]; break;
case 24: val = (pixels[2] * 256 + pixels[1]) *256 + pixels[0]; break;
case 32: val = ((pixels[3] * 256) + pixels[2] * 256 + pixels[1]) *256 + pixels[0]; break;
}
val = val & (description.PixelFormat.RBitMask | description.PixelFormat.GBitMask | description.PixelFormat.BBitMask);
>え、いまどきは何を使うのでしょうか
Direct3D を使ったほうが情報も多いしラクだと思います。
しょぼいビデオカードでも VSync に厳密にあわせられてテアリングしないのは良いけど > 昔のDDraw
■ このスレッドは過去ログ倉庫に格納されています