GDI+
ダブルバッファの手順とサンプル デバイスコンテキストから生成したGraphicsオブジェクトに描画している場合、ウィンドウを動かしたりすると画面がちらつく。これは描画の処理が追いついていないために、一度消して真っ白になった背景が見えてしまうからであ…
ブレンド〜ビットマップの操作〜 今までの画像の描画は透明度だけを考慮したアルファブレンドである。しかしながらゲームでは派手なエフェクトのためにスクリーンやオーバーレイなどの合成方式が用いられる。知る限りこれらはGDI+では実装されていない。とい…
中心回転 ゲームなどのスプライトは中心座標が指定されているのが普通である。では、画像の中心を回転中心とした回転関数を書いてみよう。前回紹介した変形描画メソッドを使う。 DrawImage(Image *srcImage, const Point *dstPoints, INT count); DrawImage(…
さて、前回までで読み込んだ画像を描画しよう。描画にはGraphics::DrawImageメソッドを用る。リファレンスのままだと使いにくいので、目的別に分類してみる。 dstは描画先の画像、srcは描画する画像を意味する。メソッドの返値はすべてStatusである。デフォ…
リソースからPNGやJPEGを読み込む ゲームを作るにあたって、利用する画像はBitmapじゃちょっとばかし大きすぎる。だから圧縮率も高い上に8bitアルファを持ってるPNGを使いたい。ディレクトリから読み込む場合はユーザに画像を勝手に使われるし、exe単体で配…
自分が使わなかった部分は知識で書いて、実際に試してないから動くかわかんね。 ImageクラスとBitmapクラス 画像はImageクラスで扱う。BitmapクラスはImageクラスを継承している。そのため引数がImageクラスのインスタンスやその参照になっているメソッドにB…
リファレンス嫁はさすがにアレなので、とっかかりになれるぐらいの基本的な操作だけでも簡単に書いておく。 Graphicsオブジェクトの作成 基本的な描画操作はGraphicsオブジェクトに対して行う。Graphicsクラスのコンストラクタは4つあるが、クライアント領域…
NativeC++でガリガリ書きたい方のために、これまでにGDI+で遊んで得たノウハウを少し書き残そう。手取り足取りな解説も途中まで書いてみたが、リファレンスが充実しているのでいらないという結論。ある程度の使い方を知った上で一歩踏み込んだ内容についてだ…