openMSX
|
Wrapper around a pixel buffer. More...
#include <GLUtil.hh>
Public Member Functions | |
PixelBuffer () | |
PixelBuffer (const PixelBuffer &other)=delete | |
PixelBuffer (PixelBuffer &&other) noexcept | |
PixelBuffer & | operator= (const PixelBuffer &other)=delete |
PixelBuffer & | operator= (PixelBuffer &&other) noexcept |
~PixelBuffer () | |
void | allocate (GLuint size) |
Allocate the maximum required size for this buffer. | |
void | bind () const |
Bind this PixelBuffer. | |
void | unbind () const |
Unbind this buffer. | |
std::span< T > | mapWrite () |
Maps the contents of this buffer into memory. | |
void | unmap () const |
Unmaps the contents of this buffer. | |
Wrapper around a pixel buffer.
The pixel buffer will be allocated in VRAM if possible, in main RAM otherwise. The pixel type is templatized T.
Note: openGL ES 2.0 does not yet support this. So for now we always use the fallback implementation, maybe we can re-enable this when we switch to openGL ES 3.0.
gl::PixelBuffer< T >::PixelBuffer | ( | ) |
|
delete |
|
noexcept |
gl::PixelBuffer< T >::~PixelBuffer | ( | ) |
void gl::PixelBuffer< T >::allocate | ( | GLuint | size | ) |
Allocate the maximum required size for this buffer.
Definition at line 239 of file GLUtil.hh.
Referenced by openmsx::GLHQScaler::GLHQScaler(), and openmsx::PostProcessor::PostProcessor().
void gl::PixelBuffer< T >::bind | ( | ) | const |
Bind this PixelBuffer.
Must be called before the methods getOffset() or mapWrite() are used. (Is a wrapper around glBindBuffer).
Definition at line 255 of file GLUtil.hh.
Referenced by openmsx::GLHQScaler::uploadBlock().
std::span< T > gl::PixelBuffer< T >::mapWrite | ( | ) |
Maps the contents of this buffer into memory.
The returned buffer is write-only (reading could be very slow or even result in a segfault).
Definition at line 271 of file GLUtil.hh.
Referenced by openmsx::GLHQScaler::uploadBlock().
|
delete |
|
noexcept |
void gl::PixelBuffer< T >::unbind | ( | ) | const |
Unbind this buffer.
Definition at line 263 of file GLUtil.hh.
Referenced by openmsx::GLHQScaler::uploadBlock().
void gl::PixelBuffer< T >::unmap | ( | ) | const |
Unmaps the contents of this buffer.
After this call, you must no longer use the pointer returned by mapWrite.
Definition at line 282 of file GLUtil.hh.
Referenced by openmsx::GLHQScaler::uploadBlock().