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
sourceimpl 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_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_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_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_4(
arr: &dyn ToInputArray,
target: Buffer_Target,
auto_release: bool
) -> Result<Buffer>
pub fn new_4(
arr: &dyn 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 unbind(target: Buffer_Target) -> Result<()>
pub fn unbind(target: Buffer_Target) -> Result<()>
Unbind any buffers from the specified binding point.
Parameters
- target: Binding point. See cv::ogl::Buffer::Target .
Trait Implementations
sourceimpl Boxed for Buffer
impl Boxed for Buffer
sourceimpl BufferTrait for Buffer
impl BufferTrait for Buffer
fn as_raw_mut_Buffer(&mut self) -> *mut c_void
sourcefn 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<()>
Allocates memory for ogl::Buffer object. Read more
sourcefn 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<()>
Allocates memory for ogl::Buffer object. Read more
sourcefn release(&mut self) -> Result<()>
fn release(&mut self) -> Result<()>
Decrements the reference counter and destroys the buffer object if needed. Read more
sourcefn copy_from(
&mut self,
arr: &dyn ToInputArray,
target: Buffer_Target,
auto_release: bool
) -> Result<()>
fn copy_from(
&mut self,
arr: &dyn ToInputArray,
target: Buffer_Target,
auto_release: bool
) -> Result<()>
Copies from host/device memory to OpenGL buffer. Read more
sourcefn copy_from_1(
&mut self,
arr: &dyn ToInputArray,
stream: &mut Stream,
target: Buffer_Target,
auto_release: bool
) -> Result<()>
fn copy_from_1(
&mut self,
arr: &dyn ToInputArray,
stream: &mut Stream,
target: Buffer_Target,
auto_release: bool
) -> Result<()>
Copies from host/device memory to OpenGL buffer. Read more
sourcefn map_host(&mut self, access: Buffer_Access) -> Result<Mat>
fn map_host(&mut self, access: Buffer_Access) -> Result<Mat>
Maps OpenGL buffer to host memory. Read more
sourcefn unmap_host(&mut self) -> Result<()>
fn unmap_host(&mut self) -> Result<()>
Unmaps OpenGL buffer.
sourcefn map_device(&mut self) -> Result<GpuMat>
fn map_device(&mut self) -> Result<GpuMat>
map to device memory (blocking)
fn unmap_device(&mut self) -> Result<()>
sourcefn map_device_1(&mut self, stream: &mut Stream) -> Result<GpuMat>
fn map_device_1(&mut self, stream: &mut Stream) -> Result<GpuMat>
Maps OpenGL buffer to CUDA device memory. Read more
sourcefn unmap_device_1(&mut self, stream: &mut Stream) -> Result<()>
fn unmap_device_1(&mut self, stream: &mut Stream) -> Result<()>
Unmaps OpenGL buffer.
sourceimpl BufferTraitConst for Buffer
impl BufferTraitConst for Buffer
fn as_raw_Buffer(&self) -> *const c_void
sourcefn copy_to(&self, arr: &mut dyn ToOutputArray) -> Result<()>
fn copy_to(&self, arr: &mut dyn ToOutputArray) -> Result<()>
Copies from OpenGL buffer to host/device memory or another OpenGL buffer object. Read more
sourcefn copy_to_1(
&self,
arr: &mut dyn ToOutputArray,
stream: &mut Stream
) -> Result<()>
fn copy_to_1(
&self,
arr: &mut dyn ToOutputArray,
stream: &mut Stream
) -> Result<()>
Copies from OpenGL buffer to host/device memory or another OpenGL buffer object. Read more
sourcefn clone(&self, target: Buffer_Target, auto_release: bool) -> Result<Buffer>
fn clone(&self, target: Buffer_Target, auto_release: bool) -> Result<Buffer>
Creates a full copy of the buffer object and the underlying data. Read more
sourcefn bind(&self, target: Buffer_Target) -> Result<()>
fn bind(&self, target: Buffer_Target) -> Result<()>
Binds OpenGL buffer to the specified buffer binding point. Read more
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
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more