2019年04月30日

GWの有馬温泉旅行で〜

GWに旅行に行った先で、なんだか萌えキャラな貸しEカーがありました。
う〜ん、コレに乗って有馬温泉をめぐるって、結構度胸必要だと思う。IMG_20190430_133616.jpg
タグ:ネタ
posted by ぱぱぷた at 13:36| Comment(0) | 旅行

2018年10月13日

落花生とゴーヤ・・・と?

今日は畑の雑草除去と整理。それから収穫?

うちの畑は落花生も育ててたのですが、とりあえず台風でネットの支柱ごと倒れてしまったゴーヤの下敷きになっていたので半分放置状態。

そろそろヤヴァいので倒れたゴーヤを片付けようとしたら、ゴーヤがいっぱい生ってた。
そしてゴーヤどけて、埋まっていた落花生と併せて収穫。
IMG_20181013_122944.jpg

一緒に写ってる柿は実家のものを頂きました。
落花生、思った以上に一杯取れてホクホクです。
タグ:
posted by ぱぱぷた at 16:55| Comment(0) | 家庭菜園

2018年10月09日

SharpDX + DirectX9でスクリーンショット取得

SharpDXつかってC#でDirectX9使ってる時にスクリーンショットを取る必要が出たので覚書。
// ★事前準備。
// デフォルトレンダリングターゲットのSurfaceを取得
Surface s = device.GetRenderTarget(0);
SurfaceDescription sd = s.Description;

// 保存用のSurfaceと、コピー領域指定用用のRectangleを生成。
Surface saveSurface = Surface.CreateOffscreenPlain(device, sd.Width, sd.Height, sd.Format, Pool.SystemMemory);
Rectangle rect = Rectangle(0, 0, sd.Width, sd.Height);

// ★保存処理実施
device.GetRenderTargetData(s, saveSurface);
DataRectangle dr = _SaveView.LockRectangle(LockFlags.ReadOnly);
byte[] buf = new byte[dr.Pitch * Height];

// DirectXのバックバッファから一時バッファへコピー(1)
Marshal.Copy(dr.DataPointer, buf, 0, buf.Length);
_SaveView.UnlockRectangle();

try {
using(Bitmap bmp = new Bitmap(Width, Height, PixelFormat.Format32bppArgb)){
// 一時バッファからBitmapのデータ領域へコピー(2)
BitmapData bd = _SaveBmp.LockBits(_SaveRect, ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
Marshal.Copy(buf, 0, bd.Scan0, buf.Length);
bmp.UnlockBits(bd);
// BitmapをJPEGで保存
bmp.Save(path, ImageFormat.Jpeg);
}
}
catch(Exception ex) {
// エラーログ出すとか
}

(1)と(2)の処理を一度でできるといいけど、
Marshal.Copyでsrc、dstともIntPtrで指定できるやつを見つけられていない・・・
なにかしら他の方法で一発で行けるかな・・・?

なににせよ、とりあえずスクリーンショットはとれるようになったし、毎フレーム実施するわけでもないので、若干重くなってもいいや、という感じでとりあえずはこれでOKとしておく・・・。
タグ:DirectX
posted by ぱぱぷた at 21:58| Comment(0) | おしごと