pub struct Buffer { /* private fields */ }
Expand description
Smart pointer for OpenGL buffer object with reference counting.
Buffer Objects are OpenGL objects that store an array of unformatted memory allocated by the OpenGL context. These can be used to store vertex data, pixel data retrieved from images or the framebuffer, and a variety of other things.
ogl::Buffer has interface similar with Mat interface and represents 2D array memory.
ogl::Buffer supports memory transfers between host and device and also can be mapped to CUDA memory.
Implementations§
source§impl Buffer
impl Buffer
sourcepub fn default() -> Result<Buffer>
pub fn default() -> Result<Buffer>
The constructors.
Creates empty ogl::Buffer object, creates ogl::Buffer object from existed buffer ( abufId parameter), allocates memory for ogl::Buffer object or copies from host/device memory.
sourcepub fn new(
arows: i32,
acols: i32,
atype: i32,
abuf_id: u32,
auto_release: bool
) -> Result<Buffer>
pub fn new( arows: i32, acols: i32, atype: i32, abuf_id: u32, auto_release: bool ) -> Result<Buffer>
The constructors.
Creates empty ogl::Buffer object, creates ogl::Buffer object from existed buffer ( abufId parameter), allocates memory for ogl::Buffer object or copies from host/device memory.
§Overloaded parameters
§Parameters
- arows: Number of rows in a 2D array.
- acols: Number of columns in a 2D array.
- atype: Array type ( CV_8UC1, …, CV_64FC4 ). See Mat for details.
- abufId: Buffer object name.
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§C++ default parameters
- auto_release: false
sourcepub fn new_def(
arows: i32,
acols: i32,
atype: i32,
abuf_id: u32
) -> Result<Buffer>
pub fn new_def( arows: i32, acols: i32, atype: i32, abuf_id: u32 ) -> Result<Buffer>
@overload
§Parameters
- arows: Number of rows in a 2D array.
- acols: Number of columns in a 2D array.
- atype: Array type ( CV_8UC1, …, CV_64FC4 ). See Mat for details.
- abufId: Buffer object name.
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§Note
This alternative version of [new] function uses the following default values for its arguments:
- auto_release: false
sourcepub fn new_1(
asize: Size,
atype: i32,
abuf_id: u32,
auto_release: bool
) -> Result<Buffer>
pub fn new_1( asize: Size, atype: i32, abuf_id: u32, auto_release: bool ) -> Result<Buffer>
The constructors.
Creates empty ogl::Buffer object, creates ogl::Buffer object from existed buffer ( abufId parameter), allocates memory for ogl::Buffer object or copies from host/device memory.
§Overloaded parameters
§Parameters
- asize: 2D array size.
- atype: Array type ( CV_8UC1, …, CV_64FC4 ). See Mat for details.
- abufId: Buffer object name.
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§C++ default parameters
- auto_release: false
sourcepub fn new_def_1(asize: Size, atype: i32, abuf_id: u32) -> Result<Buffer>
pub fn new_def_1(asize: Size, atype: i32, abuf_id: u32) -> Result<Buffer>
@overload
§Parameters
- asize: 2D array size.
- atype: Array type ( CV_8UC1, …, CV_64FC4 ). See Mat for details.
- abufId: Buffer object name.
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§Note
This alternative version of [new] function uses the following default values for its arguments:
- auto_release: false
sourcepub fn new_2(
arows: i32,
acols: i32,
atype: i32,
target: Buffer_Target,
auto_release: bool
) -> Result<Buffer>
pub fn new_2( arows: i32, acols: i32, atype: i32, target: Buffer_Target, auto_release: bool ) -> Result<Buffer>
The constructors.
Creates empty ogl::Buffer object, creates ogl::Buffer object from existed buffer ( abufId parameter), allocates memory for ogl::Buffer object or copies from host/device memory.
§Overloaded parameters
§Parameters
- arows: Number of rows in a 2D array.
- acols: Number of columns in a 2D array.
- atype: Array type ( CV_8UC1, …, CV_64FC4 ). See Mat for details.
- target: Buffer usage. See cv::ogl::Buffer::Target .
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§C++ default parameters
- target: ARRAY_BUFFER
- auto_release: false
sourcepub fn new_def_2(arows: i32, acols: i32, atype: i32) -> Result<Buffer>
pub fn new_def_2(arows: i32, acols: i32, atype: i32) -> Result<Buffer>
@overload
§Parameters
- arows: Number of rows in a 2D array.
- acols: Number of columns in a 2D array.
- atype: Array type ( CV_8UC1, …, CV_64FC4 ). See Mat for details.
- target: Buffer usage. See cv::ogl::Buffer::Target .
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§Note
This alternative version of [new] function uses the following default values for its arguments:
- target: ARRAY_BUFFER
- auto_release: false
sourcepub fn new_3(
asize: Size,
atype: i32,
target: Buffer_Target,
auto_release: bool
) -> Result<Buffer>
pub fn new_3( asize: Size, atype: i32, target: Buffer_Target, auto_release: bool ) -> Result<Buffer>
The constructors.
Creates empty ogl::Buffer object, creates ogl::Buffer object from existed buffer ( abufId parameter), allocates memory for ogl::Buffer object or copies from host/device memory.
§Overloaded parameters
§Parameters
- asize: 2D array size.
- atype: Array type ( CV_8UC1, …, CV_64FC4 ). See Mat for details.
- target: Buffer usage. See cv::ogl::Buffer::Target .
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§C++ default parameters
- target: ARRAY_BUFFER
- auto_release: false
sourcepub fn new_def_3(asize: Size, atype: i32) -> Result<Buffer>
pub fn new_def_3(asize: Size, atype: i32) -> Result<Buffer>
@overload
§Parameters
- asize: 2D array size.
- atype: Array type ( CV_8UC1, …, CV_64FC4 ). See Mat for details.
- target: Buffer usage. See cv::ogl::Buffer::Target .
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§Note
This alternative version of [new] function uses the following default values for its arguments:
- target: ARRAY_BUFFER
- auto_release: false
sourcepub fn new_4(
arr: &impl ToInputArray,
target: Buffer_Target,
auto_release: bool
) -> Result<Buffer>
pub fn new_4( arr: &impl ToInputArray, target: Buffer_Target, auto_release: bool ) -> Result<Buffer>
The constructors.
Creates empty ogl::Buffer object, creates ogl::Buffer object from existed buffer ( abufId parameter), allocates memory for ogl::Buffer object or copies from host/device memory.
§Overloaded parameters
§Parameters
- arr: Input array (host or device memory, it can be Mat , cuda::GpuMat or std::vector ).
- target: Buffer usage. See cv::ogl::Buffer::Target .
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§C++ default parameters
- target: ARRAY_BUFFER
- auto_release: false
sourcepub fn new_def_4(arr: &impl ToInputArray) -> Result<Buffer>
pub fn new_def_4(arr: &impl ToInputArray) -> Result<Buffer>
@overload
§Parameters
- arr: Input array (host or device memory, it can be Mat , cuda::GpuMat or std::vector ).
- target: Buffer usage. See cv::ogl::Buffer::Target .
- autoRelease: Auto release mode (if true, release will be called in object’s destructor).
§Note
This alternative version of [new] function uses the following default values for its arguments:
- target: ARRAY_BUFFER
- auto_release: false
Trait Implementations§
source§impl Boxed for Buffer
impl Boxed for Buffer
source§unsafe fn from_raw(ptr: <Buffer as OpenCVFromExtern>::ExternReceive) -> Self
unsafe fn from_raw(ptr: <Buffer as OpenCVFromExtern>::ExternReceive) -> Self
source§fn into_raw(self) -> <Buffer as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw(self) -> <Buffer as OpenCVTypeExternContainer>::ExternSendMut
source§fn as_raw(&self) -> <Buffer as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <Buffer as OpenCVTypeExternContainer>::ExternSend
source§fn as_raw_mut(&mut self) -> <Buffer as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut(&mut self) -> <Buffer as OpenCVTypeExternContainer>::ExternSendMut
source§impl BufferTrait for Buffer
impl BufferTrait for Buffer
fn as_raw_mut_Buffer(&mut self) -> *mut c_void
source§fn create(
&mut self,
arows: i32,
acols: i32,
atype: i32,
target: Buffer_Target,
auto_release: bool
) -> Result<()>
fn create( &mut self, arows: i32, acols: i32, atype: i32, target: Buffer_Target, auto_release: bool ) -> Result<()>
source§fn create_def(&mut self, arows: i32, acols: i32, atype: i32) -> Result<()>
fn create_def(&mut self, arows: i32, acols: i32, atype: i32) -> Result<()>
source§fn create_size(
&mut self,
asize: Size,
atype: i32,
target: Buffer_Target,
auto_release: bool
) -> Result<()>
fn create_size( &mut self, asize: Size, atype: i32, target: Buffer_Target, auto_release: bool ) -> Result<()>
source§fn release(&mut self) -> Result<()>
fn release(&mut self) -> Result<()>
source§fn copy_from(
&mut self,
arr: &impl ToInputArray,
target: Buffer_Target,
auto_release: bool
) -> Result<()>
fn copy_from( &mut self, arr: &impl ToInputArray, target: Buffer_Target, auto_release: bool ) -> Result<()>
source§fn copy_from_def(&mut self, arr: &impl ToInputArray) -> Result<()>
fn copy_from_def(&mut self, arr: &impl ToInputArray) -> Result<()>
source§fn copy_from_1(
&mut self,
arr: &impl ToInputArray,
stream: &mut impl StreamTrait,
target: Buffer_Target,
auto_release: bool
) -> Result<()>
fn copy_from_1( &mut self, arr: &impl ToInputArray, stream: &mut impl StreamTrait, target: Buffer_Target, auto_release: bool ) -> Result<()>
source§fn copy_from_def_1(
&mut self,
arr: &impl ToInputArray,
stream: &mut impl StreamTrait
) -> Result<()>
fn copy_from_def_1( &mut self, arr: &impl ToInputArray, stream: &mut impl StreamTrait ) -> Result<()>
source§fn map_host(&mut self, access: Buffer_Access) -> Result<Mat>
fn map_host(&mut self, access: Buffer_Access) -> Result<Mat>
source§fn unmap_host(&mut self) -> Result<()>
fn unmap_host(&mut self) -> Result<()>
source§fn map_device(&mut self) -> Result<GpuMat>
fn map_device(&mut self) -> Result<GpuMat>
fn unmap_device(&mut self) -> Result<()>
source§fn map_device_1(&mut self, stream: &mut impl StreamTrait) -> Result<GpuMat>
fn map_device_1(&mut self, stream: &mut impl StreamTrait) -> Result<GpuMat>
source§fn unmap_device_1(&mut self, stream: &mut impl StreamTrait) -> Result<()>
fn unmap_device_1(&mut self, stream: &mut impl StreamTrait) -> Result<()>
source§impl BufferTraitConst for Buffer
impl BufferTraitConst for Buffer
fn as_raw_Buffer(&self) -> *const c_void
source§fn copy_to(&self, arr: &mut impl ToOutputArray) -> Result<()>
fn copy_to(&self, arr: &mut impl ToOutputArray) -> Result<()>
source§fn copy_to_1(
&self,
arr: &mut impl ToOutputArray,
stream: &mut impl StreamTrait
) -> Result<()>
fn copy_to_1( &self, arr: &mut impl ToOutputArray, stream: &mut impl StreamTrait ) -> Result<()>
source§fn clone(&self, target: Buffer_Target, auto_release: bool) -> Result<Buffer>
fn clone(&self, target: Buffer_Target, auto_release: bool) -> Result<Buffer>
source§fn clone_def(&self) -> Result<Buffer>
fn clone_def(&self) -> Result<Buffer>
source§fn bind(&self, target: Buffer_Target) -> Result<()>
fn bind(&self, target: Buffer_Target) -> Result<()>
fn rows(&self) -> Result<i32>
fn cols(&self) -> Result<i32>
fn size(&self) -> Result<Size>
fn empty(&self) -> Result<bool>
fn typ(&self) -> Result<i32>
fn depth(&self) -> Result<i32>
fn channels(&self) -> Result<i32>
fn elem_size(&self) -> Result<i32>
fn elem_size1(&self) -> Result<i32>
impl Send for Buffer
Auto Trait Implementations§
impl Freeze for Buffer
impl RefUnwindSafe for Buffer
impl !Sync for Buffer
impl Unpin for Buffer
impl UnwindSafe for Buffer
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
source§unsafe fn modify_inplace<Res>(
&mut self,
f: impl FnOnce(&Mat, &mut Mat) -> Res
) -> Res
unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res ) -> Res
Mat
or another similar object. By passing
a mutable reference to the Mat
to this function your closure will get called with the read reference and a write references
to the same Mat
. This is of course unsafe as it breaks the Rust aliasing rules, but it might be useful for some performance
sensitive operations. One example of an OpenCV function that allows such in-place modification is imgproc::threshold
. Read more