28#ifndef __HardwarePixelBuffer__
29#define __HardwarePixelBuffer__
109 virtual void readData(
size_t offset,
size_t length,
void* pDest);
111 virtual void writeData(
size_t offset,
size_t length,
const void* pSource,
112 bool discardWholeBuffer =
false);
151 blitFromMemory(src,
Box(0,0,0,mWidth,mHeight,mDepth));
170 blitToMemory(
Box(0,0,0,mWidth,mHeight,mDepth), dst);
Abstract class defining common features of hardware buffers.
virtual void * lock(size_t offset, size_t length, LockOptions options)
Lock the buffer for (potentially) reading / writing.
LockOptions
Locking options.
Usage
Enums describing buffer usage; not mutually exclusive.
Shared pointer implementation used to share pixel buffers.
HardwarePixelBufferSharedPtr()
HardwarePixelBufferSharedPtr(HardwarePixelBuffer *buf)
Specialisation of HardwareBuffer for a pixel buffer.
uint32 getWidth() const
Gets the width of this buffer.
size_t mRowPitch
Pitches (offsets between rows and slices)
virtual void writeData(size_t offset, size_t length, const void *pSource, bool discardWholeBuffer=false)
Writes data to the buffer from an area of system memory; note that you must ensure that your buffer i...
void blitFromMemory(const PixelBox &src)
Convenience function that blits a pixelbox from memory to the entire buffer.
Image::Box mLockedBox
The current locked box of this surface (entire surface coords)
virtual void * lock(size_t offset, size_t length, LockOptions options)
Lock the buffer for (potentially) reading / writing.
void blitToMemory(const PixelBox &dst)
Convenience function that blits this entire buffer to a pixelbox.
virtual void blitFromMemory(const PixelBox &src, const Image::Box &dstBox)=0
Copies a region from normal memory to a region of this pixelbuffer.
PixelFormat getFormat() const
Gets the native pixel format of this buffer.
PixelFormat mFormat
Internal format.
virtual PixelBox lockImpl(const Image::Box lockBox, LockOptions options)=0
Internal implementation of lock(), must be overridden in subclasses.
PixelBox mCurrentLock
Currently locked region (local coords)
virtual RenderTexture * getRenderTarget(size_t slice=0)
Get a render target for this PixelBuffer, or a slice of it.
HardwarePixelBuffer(uint32 mWidth, uint32 mHeight, uint32 mDepth, PixelFormat mFormat, HardwareBuffer::Usage usage, bool useSystemMemory, bool useShadowBuffer)
Should be called by HardwareBufferManager.
virtual const PixelBox & lock(const Image::Box &lockBox, LockOptions options)
Lock the buffer for (potentially) reading / writing.
virtual void * lockImpl(size_t offset, size_t length, LockOptions options)
Internal implementation of lock(), do not OVERRIDE or CALL this for HardwarePixelBuffer implementatio...
virtual void _clearSliceRTT(size_t zoffset)
Notify TextureBuffer of destruction of render target.
virtual void readData(size_t offset, size_t length, void *pDest)
Reads data from the buffer and places it in the memory pointed to by pDest.
const PixelBox & getCurrentLock()
Get the current locked region.
virtual void blitToMemory(const Image::Box &srcBox, const PixelBox &dst)=0
Copies a region of this pixelbuffer to normal memory.
void blit(const HardwarePixelBufferSharedPtr &src)
Convenience function that blits the entire source pixel buffer to this buffer.
uint32 getDepth() const
Gets the depth of this buffer.
virtual void blit(const HardwarePixelBufferSharedPtr &src, const Image::Box &srcBox, const Image::Box &dstBox)
Copies a box from another PixelBuffer to a region of the this PixelBuffer.
uint32 getHeight() const
Gets the height of this buffer.
A primitive describing a volume (3D), image (2D) or line (1D) of pixels in memory.
This class represents a RenderTarget that renders to a Texture.
Reference-counted shared pointer, used for objects where implicit destruction is required.
PixelFormat
The pixel format used for images, textures, and render surfaces.
Structure used to define a box in a 3-D integer space.