TNB Library
公開メンバ関数 | 全メンバ一覧
CDirectDraw::CSurface クラス

DirectDraw サーフェス管理. [詳解]

#include <TnbDxDraw.h>

公開メンバ関数

void Attach (LPDIRECTDRAWSURFACE7 pSurface)
 [登録] アタッチ. [詳解]
 
HRESULT Blt (const RECT &dstRect, LPDIRECTDRAWSURFACE7 lpDdsSrc, const RECT &srcRect, DWORD dwTrans=0)
 [描画] Blt. [詳解]
 
HRESULT BltClip (const RECT &dstRect, LPDIRECTDRAWSURFACE7 lpDdsSrc, const RECT &srcRect, DWORD dwTrans=0)
 [描画] クリッピング Blt. [詳解]
 
HRESULT BltFast (int x, int y, LPDIRECTDRAWSURFACE7 lpDdsSrc, const RECT &srcRect, DWORD dwTrans=0)
 [描画] BltFast. [詳解]
 
HRESULT BltFastClip (int x, int y, LPDIRECTDRAWSURFACE7 lpDdsSrc, const RECT &srcRect, DWORD dwTrans=0)
 [描画] クリッピング BltFast. [詳解]
 
HRESULT Create (IDirectDraw7 *pDraw, LPDDSURFACEDESC2 pDdsd)
 [作成] 作成. [詳解]
 
 CSurface (CSurface &other)
 コピーコンストラクタ. [詳解]
 
 CSurface (LPDIRECTDRAWSURFACE7 pSurface)
 コンストラクタ. [詳解]
 
 CSurface (void)
 コンストラクタ. [詳解]
 
void Destroy (void)
 [破棄] 破棄. [詳解]
 
const TBufferGetBuffer (void)
 [取得] バッファ取得. [詳解]
 
HDC GetDC (void)
 [取得] HDC 取得. [詳解]
 
const SIZE & GetSize (void) const
 [取得] サイズ取得. [詳解]
 
bool IsValid (void) const
 [確認] 有効確認. [詳解]
 
 operator LPDIRECTDRAWSURFACE7 (void)
 [参照] 参照. [詳解]
 
LPDIRECTDRAWSURFACE7 operator-> (void)
 [参照] 参照. [詳解]
 
CSurfaceoperator= (CSurface &other)
 コピーオペレータ. [詳解]
 
void ReleaseBuffer (void)
 [取得] バッファ返却. [詳解]
 
void ReleaseDC (void)
 [取得] HDC 返却. [詳解]
 
void SetClipRect (const RECT &rect)
 [設定] クリッピング範囲設定. [詳解]
 
 ~CSurface ()
 デストラクタ [詳解]
 

詳解

DirectDraw サーフェス管理.

覚え書き
複製が可能ですが、コピー先も同じサーフェスを参照するものになります。
必要ファイル
TnbDxDraw.h
DirectX 7 以上の SDK も必要です。
日付
09/07/23 新規作成

TnbDxDraw.h100 行目に定義があります。

構築子と解体子

◆ ~CSurface()

~CSurface ( )

デストラクタ

TnbDxDraw.h105 行目に定義があります。

◆ CSurface() [1/3]

CSurface ( void  )

コンストラクタ.

TnbDxDraw.h111 行目に定義があります。

◆ CSurface() [2/3]

CSurface ( LPDIRECTDRAWSURFACE7  pSurface)

コンストラクタ.

覚え書き
作成したサーフェスを指定することで,本クラスで管理することが出来ます。
引数
pSurfaceサーフェスポインタ。このサーフェスは本クラスが管理するので、 Releaseしないでください。

TnbDxDraw.h121 行目に定義があります。

◆ CSurface() [3/3]

CSurface ( CSurface other)

コピーコンストラクタ.

注意
const オブジェクトはコピー元に使えません。
引数
otherコピー元

TnbDxDraw.h131 行目に定義があります。

関数詳解

◆ Attach()

void Attach ( LPDIRECTDRAWSURFACE7  pSurface)

[登録] アタッチ.

覚え書き
先に保持しているサーフェスがあれば、破棄してからアタッチします。
作成したサーフェスを指定することで,本クラスで管理することが出来ます。
引数
pSurfaceサーフェスポインタ。このサーフェスは本クラスが管理するので、 Releaseしないでください。

TnbDxDraw.h159 行目に定義があります。

◆ Blt()

HRESULT Blt ( const RECT &  dstRect,
LPDIRECTDRAWSURFACE7  lpDdsSrc,
const RECT &  srcRect,
DWORD  dwTrans = 0 
)

[描画] Blt.

引数
dstRect転送先範囲
lpDdsSrc転送元サーフェス
srcRect転送元の範囲
dwTrans転送フラグ
戻り値
DD_OK成功。
上記以外失敗。

TnbDxDraw.h310 行目に定義があります。

◆ BltClip()

HRESULT BltClip ( const RECT &  dstRect,
LPDIRECTDRAWSURFACE7  lpDdsSrc,
const RECT &  srcRect,
DWORD  dwTrans = 0 
)

[描画] クリッピング Blt.

クリッピング処理付きの Blt です。

引数
dstRect転送先範囲
lpDdsSrc転送元サーフェス
srcRect転送元の範囲
dwTrans転送フラグ
戻り値
DD_OK成功。
上記以外失敗。

TnbDxDraw.h333 行目に定義があります。

◆ BltFast()

HRESULT BltFast ( int  x,
int  y,
LPDIRECTDRAWSURFACE7  lpDdsSrc,
const RECT &  srcRect,
DWORD  dwTrans = 0 
)

[描画] BltFast.

引数
x転送先X座標
y転送先Y座標
lpDdsSrc転送元サーフェス
srcRect転送元の範囲
dwTrans転送フラグ
戻り値
DD_OK成功。
上記以外失敗。

TnbDxDraw.h250 行目に定義があります。

◆ BltFastClip()

HRESULT BltFastClip ( int  x,
int  y,
LPDIRECTDRAWSURFACE7  lpDdsSrc,
const RECT &  srcRect,
DWORD  dwTrans = 0 
)

[描画] クリッピング BltFast.

クリッピング処理付きの BltFase です。

引数
x転送先X座標
y転送先Y座標
lpDdsSrc転送元サーフェス
srcRect転送元の範囲
dwTrans転送フラグ
戻り値
DD_OK成功。
上記以外失敗。

TnbDxDraw.h273 行目に定義があります。

◆ Create()

HRESULT Create ( IDirectDraw7 *  pDraw,
LPDDSURFACEDESC2  pDdsd 
)

[作成] 作成.

覚え書き
先に保持しているサーフェスがあれば、破棄してから作成します。
引数
pDraw有効な DirectDraw のポインタ
pDdsdサーフェス作成用情報
戻り値
DD_OK成功。作成したサーフェスを保持します。
上記以外失敗。

TnbDxDraw.h174 行目に定義があります。

◆ Destroy()

void Destroy ( void  )

[破棄] 破棄.

保持しているサーフェスを破棄します。 保持していなければ何もしません。 

TnbDxDraw.h192 行目に定義があります。

◆ GetBuffer()

const TBuffer * GetBuffer ( void  )

[取得] バッファ取得.

サーフェスのバッファを取得できます。

覚え書き
ReleaseDC() も実行されますので、 GetDC() で得た HDC は無効になります。
注意
GetBuffer()ReleaseBuffer() の間は極力処理を短くなるように心がけてください。
戻り値
NULL失敗。先の GetBuffer() 後、 ReleaseDC() していない場合も失敗します。
NULL以外成功。値はバッファ管理のポインタです。使用後、破棄せず、 ReleaseBuffer() をコールしてください。

TnbDxDraw.h413 行目に定義があります。

◆ GetDC()

HDC GetDC ( void  )

[取得] HDC 取得.

サーフェスの HDC を取得できます。

覚え書き
ReleaseBuffer() も実行されますので、 GetBuffer() の戻り値が無効になります。
注意
GetDC()ReleaseDC() の間は極力処理を短くなるように心がけてください。
戻り値
NULL失敗。先の GetDC() 後、 ReleaseDC() していない場合も失敗します。
NULL以外成功。値は HDC。使用後、破棄せず、 ReleaseDC() をコールしてください。

TnbDxDraw.h379 行目に定義があります。

◆ GetSize()

const SIZE & GetSize ( void  ) const

[取得] サイズ取得.

保持しているサーフェスのサイズを返します。

戻り値
サイズ

TnbDxDraw.h213 行目に定義があります。

◆ IsValid()

bool IsValid ( void  ) const

[確認] 有効確認.

戻り値
true有効。サーフェスを保持しています。
false無効。サーフェスを保持していません。

TnbDxDraw.h203 行目に定義があります。

◆ operator LPDIRECTDRAWSURFACE7()

operator LPDIRECTDRAWSURFACE7 ( void  )

[参照] 参照.

覚え書き
DirectDraw の API の引数に渡すためにサーフェスのポインタを返します。
戻り値
サーフェスポインタ

TnbDxDraw.h223 行目に定義があります。

◆ operator->()

LPDIRECTDRAWSURFACE7 operator-> ( void  )

[参照] 参照.

覚え書き
DirectDraw の IDirectDrawSurface のメソッドを実行するためにサーフェスのポインタを返します。
戻り値
サーフェスポインタ

TnbDxDraw.h234 行目に定義があります。

◆ operator=()

CSurface & operator= ( CSurface other)

コピーオペレータ.

注意
const オブジェクトはコピー元に使えません。
引数
otherコピー元
戻り値
自分の参照.

TnbDxDraw.h142 行目に定義があります。

◆ ReleaseBuffer()

void ReleaseBuffer ( void  )

[取得] バッファ返却.

GetBuffer() で得たバッファ情報のポインタは使えなくなります。

TnbDxDraw.h436 行目に定義があります。

◆ ReleaseDC()

void ReleaseDC ( void  )

[取得] HDC 返却.

GetDC() で得た HDC は使えなくなります。

TnbDxDraw.h396 行目に定義があります。

◆ SetClipRect()

void SetClipRect ( const RECT &  rect)

[設定] クリッピング範囲設定.

クリッピング範囲を設定します。

覚え書き
通常使いません。
引数
rect範囲

TnbDxDraw.h451 行目に定義があります。