OpenCV 4.5.3(日本語機械翻訳)
|
Smart pointer for OpenGL buffer object with reference counting. [詳解]
#include <opengl.hpp>
公開型 |
|
enum | Target { ARRAY_BUFFER = 0x8892 , ELEMENT_ARRAY_BUFFER = 0x8893 , PIXEL_PACK_BUFFER = 0x88EB , PIXEL_UNPACK_BUFFER = 0x88EC } |
ターゲットは、バッファオブジェクトをどのように使用するかを定義します。[【詳解】(英語]
|
|
enum | Access { READ_ONLY = 0x88B8 , WRITE_ONLY = 0x88B9 , READ_WRITE = 0x88BA } |
公開メンバ関数 |
|
Buffer () | |
コンストラクタには[【詳解】(英語]
|
|
Buffer (int arows, int acols, int atype, unsigned int abufId, bool autoRelease=false) | |
Buffer (Size asize, int atype, unsigned int abufId, bool autoRelease=false) | |
Buffer (int arows, int acols, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false) | |
Buffer (Size asize, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false) | |
Buffer (InputArray arr, Target target=ARRAY_BUFFER, bool autoRelease=false) | |
void | create (int arows, int acols, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false) |
にメモリを割り当てます。ogl::Bufferオブジェクトを作成します。[【詳解】(英語]
|
|
void | create (Size asize, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false) |
void | release () |
参照カウンタをデクリメントし、必要であればバッファオブジェクトを破棄します。[【詳解】(英語]
|
|
void | setAutoRelease (bool flag) |
オートリリースモードを設定します。[【詳解】(英語]
|
|
void | copyFrom (InputArray arr, Target target=ARRAY_BUFFER, bool autoRelease=false) |
ホスト/デバイスのメモリからOpenGLバッファにコピーします。[【詳解】(英語]
|
|
void | copyFrom (InputArray arr, cuda::Stream &stream, Target target=ARRAY_BUFFER, bool autoRelease=false) |
void | copyTo (OutputArray arr) const |
OpenGLバッファからホスト/デバイスメモリまたは他のOpenGLバッファオブジェクトにコピーします。[【詳解】(英語]
|
|
void | copyTo (OutputArray arr, cuda::Stream &stream) const |
Buffer | clone (Target target=ARRAY_BUFFER, bool autoRelease=false) const |
バッファオブジェクトとその基礎となるデータの完全なコピーを作成します。[【詳解】(英語]
|
|
void | bind (Target target) const |
OpenGLバッファを、指定されたバッファバインディングポイントにバインドします。[【詳解】(英語]
|
|
Mat | mapHost (Access access) |
OpenGLバッファをホストメモリにマッピングします。[【詳解】(英語]
|
|
void | unmapHost () |
OpenGLバッファをアンマップします。 |
|
cuda::GpuMat | mapDevice () |
デバイスメモリへのマッピング(ブロッキング) |
|
void | unmapDevice () |
cuda::GpuMat | mapDevice (cuda::Stream &stream) |
OpenGLバッファをCUDAデバイスメモリにマッピングします。[【詳解】(英語]
|
|
void | unmapDevice (cuda::Stream &stream) |
OpenGLバッファをアンマップします。 |
|
int | rows () const |
int | cols () const |
Size | size () const |
bool | empty () const |
int | type () const |
int | depth () const |
int | channels () const |
int | elemSize () const |
int | elemSize1 () const |
unsigned int | bufId () const |
OpenGL opject idの取得 |
|
静的公開メンバ関数 |
|
static void | unbind (Target target) |
指定されたバインディングポイントから任意のバッファのバインドを解除します。[【詳解】(英語]
|
|
参照カウントを行うOpenGLバッファオブジェクトのスマートポインタです。
Bufferオブジェクトは、OpenGLコンテキストによって割り当てられたフォーマットされていないメモリの配列を格納するOpenGLオブジェクトです。これらは、頂点データ、画像やフレームバッファから取得したピクセルデータ、その他様々なものを格納するために使用できます。
ogl::Bufferと同様のインターフェースを持ちMatインターフェイスを持ち、2次元配列メモリを表します。
ogl::Bufferホストとデバイス間のメモリ転送をサポートし、CUDAメモリにマッピングすることもできます。
cv::ogl::Buffer::Buffer | ( | ) |
コンストラクタには
空のogl::Bufferオブジェクトを作成します。ogl::Buffer存在するバッファ(abufIdパラメータ)からオブジェクトを作成したり、オブジェクト用にメモリを確保したりogl::Bufferオブジェクト用のメモリを割り当てたり、ホスト/デバイスのメモリからコピーしたりします。
cv::ogl::Buffer::Buffer | ( | int | arows, |
int | acols, | ||
int | atype, | ||
unsigned int | abufId, | ||
bool |
autoRelease
=
false |
||
) |
cv::ogl::Buffer::Buffer | ( | Size | asize, |
int | atype, | ||
unsigned int | abufId, | ||
bool |
autoRelease
=
false |
||
) |
cv::ogl::Buffer::Buffer | ( | int | arows, |
int | acols, | ||
int | atype, | ||
Target |
target
=
ARRAY_BUFFER
,
|
||
bool |
autoRelease
=
false |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
arows | 2D配列の行数。 |
acols | 2 次元配列の列数. |
atype | 配列の種類 ( CV_8UC1, ..., CV_64FC4 ).参照Matを参照してください。 |
target | Buffer使い方.参照cv::ogl::Buffer::Target. |
autoRelease | 自動リリースモード(true の場合,オブジェクトのデストラクタ内でリリースが呼ばれます). |
cv::ogl::Buffer::Buffer | ( | Size | asize, |
int | atype, | ||
Target |
target
=
ARRAY_BUFFER
,
|
||
bool |
autoRelease
=
false |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
asize | 2次元配列のサイズ. |
atype | 配列の種類 ( CV_8UC1, ..., CV_64FC4 ).参照Matを参照してください。 |
target | Buffer使い方.参照cv::ogl::Buffer::Target. |
autoRelease | 自動リリースモード(true の場合,オブジェクトのデストラクタ内でリリースが呼ばれます). |
|
explicit |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
arr | 入力配列 (ホストまたはデバイスのメモリ,それはMat,cuda::GpuMatまたはstd::vector )を参照してください。 |
target | Buffer使い方.参照cv::ogl::Buffer::Target. |
autoRelease | 自動リリースモード(true の場合,オブジェクトのデストラクタ内でリリースが呼ばれます). |
void cv::ogl::Buffer::bind | ( | Target | target | ) | const |
OpenGLバッファを、指定されたバッファバインディングポイントにバインドします。
target | バインディングポイント。を参照してください。cv::ogl::Buffer::Target. |
Buffer cv::ogl::Buffer::clone | ( | Target |
target
=
ARRAY_BUFFER
,
|
bool |
autoRelease
=
false |
||
) | const |
バッファオブジェクトとその基礎となるデータの完全なコピーを作成します。
target | Bufferデスティネーションバッファの使用法。 |
autoRelease | デスティネーションバッファの自動リリースモード。 |
void cv::ogl::Buffer::copyFrom | ( | InputArray | arr, |
cuda::Stream & | stream, | ||
Target |
target
=
ARRAY_BUFFER
,
|
||
bool |
autoRelease
=
false |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
void cv::ogl::Buffer::copyFrom | ( | InputArray | arr, |
Target |
target
=
ARRAY_BUFFER
,
|
||
bool |
autoRelease
=
false |
||
) |
ホスト/デバイスのメモリからOpenGLバッファにコピーします。
arr | 入力配列 (ホストまたはデバイスのメモリ,それはMat,cuda::GpuMatまたはstd::vector )を参照してください。 |
target | Buffer使い方.参照cv::ogl::Buffer::Target. |
autoRelease | 自動リリースモード(true の場合,オブジェクトのデストラクタ内でリリースが呼ばれます). |
void cv::ogl::Buffer::copyTo | ( | OutputArray | arr | ) | const |
OpenGLバッファからホスト/デバイスメモリまたは他のOpenGLバッファオブジェクトにコピーします。
arr | コピー先の配列(ホストやデバイスのメモリ。Mat,cuda::GpuMat、std::vectorまたはogl::Buffer). |
void cv::ogl::Buffer::copyTo | ( | OutputArray | arr, |
cuda::Stream & | stream | ||
) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
void cv::ogl::Buffer::create | ( | int | arows, |
int | acols, | ||
int | atype, | ||
Target |
target
=
ARRAY_BUFFER
,
|
||
bool |
autoRelease
=
false |
||
) |
にメモリを割り当てます。ogl::Bufferオブジェクトを作成します。
arows | 2D配列の行数。 |
acols | 2 次元配列の列数. |
atype | 配列の種類 ( CV_8UC1, ..., CV_64FC4 ).参照Matを参照してください。 |
target | Buffer使い方.参照cv::ogl::Buffer::Target. |
autoRelease | 自動リリースモード(true の場合,オブジェクトのデストラクタ内でリリースが呼ばれます). |
void cv::ogl::Buffer::create | ( | Size | asize, |
int | atype, | ||
Target |
target
=
ARRAY_BUFFER
,
|
||
bool |
autoRelease
=
false |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
asize | 2次元配列のサイズ. |
atype | 配列の種類 ( CV_8UC1, ..., CV_64FC4 ).参照Matを参照してください。 |
target | Buffer使い方.参照cv::ogl::Buffer::Target. |
autoRelease | 自動リリースモード(true の場合,オブジェクトのデストラクタ内でリリースが呼ばれます). |
cuda::GpuMat cv::ogl::Buffer::mapDevice | ( | cuda::Stream & | stream | ) |
OpenGLバッファをCUDAデバイスメモリにマッピングします。
この操作はデータをコピーしません。一度に複数のバッファオブジェクトをCUDAメモリにマップすることができます。
マップされたデータストアは、そのバッファオブジェクトが使用される前に ogl::Buffer::unmapDevice でアンマップされなければなりません。
Mat cv::ogl::Buffer::mapHost | ( | Access | access | ) |
OpenGLバッファをホストメモリにマッピングします。
mapHostは、バッファオブジェクトのデータストア全体をクライアントのアドレス空間にマップします。データは、指定されたアクセスポリシーに応じて、返されたポインタに対して直接読み書きすることができます。
マップされたデータストアは、そのバッファオブジェクトを使用する前にogl::Buffer::unmapHostでアンマップする必要があります。
この操作は、ホストとデバイス間のメモリ転送につながる可能性があります。
一度にマッピングできるバッファオブジェクトは1つだけです。
access | アクセスポリシー:バッファオブジェクトのマッピングされたデータストアからの読み込み、書き込み、または読み込みと書き込みの両方が可能かどうかを示します。シンボリック定数は ogl::Buffer::READ_ONLY , ogl::Buffer::WRITE_ONLY または ogl::Buffer::READ_WRITE でなければなりません。 |
void cv::ogl::Buffer::release | ( | ) |
参照カウンタをデクリメントし、必要であればバッファオブジェクトを破棄します。
この関数は setAutoRelease(true) を呼び出します。
void cv::ogl::Buffer::setAutoRelease | ( | bool | flag | ) |
オートリリースモードを設定します。
OpenGLオブジェクトのライフタイムは、コンテキストのライフタイムと結びついています。OpenGLコンテキストがウィンドウにバインドされていた場合,いつでも解放される可能性があります(ユーザがウィンドウを閉じることができます).コンテキストの破壊後にオブジェクトのデストラクタが呼ばれるとエラーになります。したがってogl::BufferはデフォルトではデストラクタでOpenGLオブジェクトを破壊しません(すべてのOpenGLリソースはOpenGLコンテキストとともに解放されます)。この関数は、デストラクタがOpenGLオブジェクトを破壊するようにogl::BufferデストラクタにOpenGLオブジェクトを破壊させることができます。
flag | 自動リリースモード(true の場合,オブジェクトのデストラクタ内でリリースが呼ばれます). |
|
static |
指定されたバインディングポイントから任意のバッファのバインドを解除します。
target | バインディングポイント。を参照してください。cv::ogl::Buffer::Target. |