![]() |
OpenCV 5.0.0
Open Source Computer Vision
|
参照カウント機能を備えた OpenGL バッファオブジェクト用のスマートポインタ。 続き...
#include <opencv2/core/opengl.hpp>
公開型 | |
| enum | Access { READ_ONLY = 0x88B8 , WRITE_ONLY = 0x88B9 , READ_WRITE = 0x88BA } |
| enum | Target { ARRAY_BUFFER = 0x8892 , ELEMENT_ARRAY_BUFFER = 0x8893 , PIXEL_PACK_BUFFER = 0x88EB , PIXEL_UNPACK_BUFFER = 0x88EC } |
| ターゲットは、バッファオブジェクトをどのように使用するつもりかを定義する。 続き... | |
公開メンバ関数 | |
| Buffer () | |
| コンストラクタ。 | |
| Buffer (InputArray arr, Target target=ARRAY_BUFFER, bool autoRelease=false) | |
| Buffer (int arows, int acols, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false) | |
| Buffer (int arows, int acols, int atype, unsigned int abufId, bool autoRelease=false) | |
| Buffer (Size asize, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false) | |
| Buffer (Size asize, int atype, unsigned int abufId, bool autoRelease=false) | |
| void | bind (Target target) const |
| OpenGL バッファを指定したバッファバインディングポイントにバインドする。 | |
| unsigned int | bufId () const |
| OpenGL オブジェクト ID を取得する | |
| int | channels () const |
| Buffer | clone (Target target=ARRAY_BUFFER, bool autoRelease=false) const |
| バッファオブジェクトとその基になるデータの完全なコピーを作成する。 | |
| int | cols () const |
| void | copyFrom (InputArray arr, cuda::Stream &stream, Target target=ARRAY_BUFFER, bool autoRelease=false) |
| void | copyFrom (InputArray arr, Target target=ARRAY_BUFFER, bool autoRelease=false) |
| ホスト/デバイスのメモリから OpenGL バッファへコピーする。 | |
| void | copyTo (OutputArray arr) const |
| OpenGL バッファからホスト/デバイスのメモリ、または別の OpenGL バッファオブジェクトへコピーする。 | |
| void | copyTo (OutputArray arr, cuda::Stream &stream) const |
| 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) |
| int | depth () const |
| int | elemSize () const |
| int | elemSize1 () const |
| bool | empty () const |
| cuda::GpuMat | mapDevice () |
| デバイスメモリへマップする (ブロッキング) | |
| cuda::GpuMat | mapDevice (cuda::Stream &stream) |
| OpenGL バッファを CUDA デバイスメモリへマップする。 | |
| Mat | mapHost (Access access) |
| OpenGL バッファをホストメモリへマップする。 | |
| void | release () |
| 参照カウンタをデクリメントし、必要であればバッファオブジェクトを破棄する。 | |
| int | rows () const |
| void | setAutoRelease (bool flag) |
| 自動解放モードを設定する。 | |
| Size | size () const |
| int | type () const |
| void | unmapDevice () |
| void | unmapDevice (cuda::Stream &stream) |
| OpenGL バッファのマップを解除する。 | |
| void | unmapHost () |
| OpenGL バッファのマップを解除する。 | |
静的公開メンバ関数 | |
| static void | unbind (Target target) |
| 指定したバインディングポイントから任意のバッファをアンバインドする。 | |
参照カウント機能を備えた OpenGL バッファオブジェクト用のスマートポインタ。
Buffer オブジェクトは、OpenGL コンテキストが確保した未整形メモリの配列を格納する OpenGL オブジェクトである。これらは頂点データ、画像やフレームバッファから取得したピクセルデータ、その他さまざまなものの格納に使用できる。
ogl::Buffer はMat と類似したインターフェースを持ち、2次元配列のメモリを表す。
ogl::Buffer はホストとデバイス間のメモリ転送をサポートし、CUDA メモリへマップすることもできる。
| cv::ogl::Buffer::Buffer | ( | ) |
コンストラクタ。
空の ogl::Buffer オブジェクトを作成する、既存のバッファ ( abufId 引数) から ogl::Buffer オブジェクトを作成する、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 | 2次元配列の行数。 |
| acols | 2次元配列の列数。 |
| atype | 配列の型 ( CV_8UC1, ..., CV_64FC4 )。詳細はMat を参照。 |
| target | Buffer の用途。cv::ogl::Buffer::Target を参照。 |
| autoRelease | 自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。 |
| 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 の場合、オブジェクトのデストラクタで release が呼ばれる)。 |
|
explicit |
これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。
| arr | 入力配列(ホストまたはデバイスメモリ。Mat 、cuda::GpuMat または std::vector でありうる)。 |
| target | Buffer の用途。cv::ogl::Buffer::Target を参照。 |
| autoRelease | 自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。 |
| void cv::ogl::Buffer::bind | ( | Target | target | ) | const |
OpenGL バッファを指定したバッファバインディングポイントにバインドする。
| target | バインディングポイント。cv::ogl::Buffer::Target を参照。 |
| unsigned int cv::ogl::Buffer::bufId | ( | ) | const |
OpenGL オブジェクト ID を取得する
| int cv::ogl::Buffer::channels | ( | ) | const |
| Buffer cv::ogl::Buffer::clone | ( | Target | target = ARRAY_BUFFER, |
| bool | autoRelease = false ) const |
バッファオブジェクトとその基になるデータの完全なコピーを作成する。
| target | コピー先バッファに対する Buffer の用途。 |
| autoRelease | コピー先バッファの自動解放モード。 |
| int cv::ogl::Buffer::cols | ( | ) | const |
| 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 の場合、オブジェクトのデストラクタで release が呼ばれる)。 |
| 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 | 2次元配列の行数。 |
| acols | 2次元配列の列数。 |
| atype | 配列の型 ( CV_8UC1, ..., CV_64FC4 )。詳細はMat を参照。 |
| target | Buffer の用途。cv::ogl::Buffer::Target を参照。 |
| autoRelease | 自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。 |
| 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 の場合、オブジェクトのデストラクタで release が呼ばれる)。 |
| int cv::ogl::Buffer::depth | ( | ) | const |
| int cv::ogl::Buffer::elemSize | ( | ) | const |
| int cv::ogl::Buffer::elemSize1 | ( | ) | const |
| bool cv::ogl::Buffer::empty | ( | ) | const |
| cuda::GpuMat cv::ogl::Buffer::mapDevice | ( | ) |
デバイスメモリへマップする (ブロッキング)
| cuda::GpuMat cv::ogl::Buffer::mapDevice | ( | cuda::Stream & | stream | ) |
OpenGL バッファを CUDA デバイスメモリへマップする。
この操作はデータをコピーしない。複数のバッファオブジェクトを同時に CUDA メモリへマップできる。
マップされたデータストアは、そのバッファオブジェクトを使用する前に ogl::Buffer::unmapDevice でマップを解除しなければならない。
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) を呼び出す。
| int cv::ogl::Buffer::rows | ( | ) | const |
| void cv::ogl::Buffer::setAutoRelease | ( | bool | flag | ) |
自動解放モードを設定する。
OpenGL オブジェクトの寿命はコンテキストの寿命に結びついている。OpenGL コンテキストがウィンドウにバインドされている場合、いつでも解放され得る (ユーザーがウィンドウを閉じる可能性がある)。コンテキストの破棄後にオブジェクトのデストラクタが呼ばれると、エラーを引き起こす。そのため ogl::Buffer はデフォルトではデストラクタで OpenGL オブジェクトを破棄しない (すべての OpenGL リソースは OpenGL コンテキストとともに解放される)。この関数は ogl::Buffer のデストラクタに OpenGL オブジェクトを強制的に破棄させることができる。
| flag | 自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。 |
| Size cv::ogl::Buffer::size | ( | ) | const |
| int cv::ogl::Buffer::type | ( | ) | const |
|
static |
指定したバインディングポイントから任意のバッファをアンバインドする。
| target | バインディングポイント。cv::ogl::Buffer::Target を参照。 |
| void cv::ogl::Buffer::unmapDevice | ( | ) |
| void cv::ogl::Buffer::unmapDevice | ( | cuda::Stream & | stream | ) |
OpenGL バッファのマップを解除する。
| void cv::ogl::Buffer::unmapHost | ( | ) |
OpenGL バッファのマップを解除する。