Classes | Public Types | Public Member Functions | Public Attributes

Image::BitmapData Class Reference

Retrieves a section of an image as raw pixel data, so it can be read or written to. More...

List of all members.

Classes

class  BitmapDataReleaser
 Used internally by custom image types to manage pixel data lifetime. More...

Public Types

enum  ReadWriteMode { readOnly, writeOnly, readWrite }

Public Member Functions

 BitmapData (Image &image, int x, int y, int w, int h, ReadWriteMode mode)
 BitmapData (const Image &image, int x, int y, int w, int h)
 BitmapData (const Image &image, ReadWriteMode mode)
 ~BitmapData ()
uint8getLinePointer (int y) const noexcept
 Returns a pointer to the start of a line in the image.
uint8getPixelPointer (int x, int y) const noexcept
 Returns a pointer to a pixel in the image.
const Colour getPixelColour (int x, int y) const noexcept
 Returns the colour of a given pixel.
void setPixelColour (int x, int y, const Colour &colour) const noexcept
 Sets the colour of a given pixel.

Public Attributes

uint8data
PixelFormat pixelFormat
int lineStride
int pixelStride
int width
int height
ScopedPointer< BitmapDataReleaserdataReleaser

Detailed Description

Retrieves a section of an image as raw pixel data, so it can be read or written to.

You should only use this class as a last resort - messing about with the internals of an image is only recommended for people who really know what they're doing!

A BitmapData object should be used as a temporary, stack-based object. Don't keep one hanging around while the image is being used elsewhere.

Depending on the way the image class is implemented, this may create a temporary buffer which is copied back to the image when the object is deleted, or it may just get a pointer directly into the image's raw data.

You can use the stride and data values in this class directly, but don't alter them! The actual format of the pixel data depends on the image's format - see Image::getFormat(), and the PixelRGB, PixelARGB and PixelAlpha classes for more info.


Member Enumeration Documentation

Enumerator:
readOnly 
writeOnly 
readWrite 

Constructor & Destructor Documentation

Image::BitmapData::BitmapData ( Image image,
int  x,
int  y,
int  w,
int  h,
ReadWriteMode  mode 
)
Image::BitmapData::BitmapData ( const Image image,
int  x,
int  y,
int  w,
int  h 
)
Image::BitmapData::BitmapData ( const Image image,
ReadWriteMode  mode 
)
Image::BitmapData::~BitmapData (  )

Member Function Documentation

uint8* Image::BitmapData::getLinePointer ( int  y ) const

Returns a pointer to the start of a line in the image.

The co-ordinate you provide here isn't checked, so it's the caller's responsibility to make sure it's not out-of-range.

uint8* Image::BitmapData::getPixelPointer ( int  x,
int  y 
) const

Returns a pointer to a pixel in the image.

The co-ordinates you give here are not checked, so it's the caller's responsibility to make sure they're not out-of-range.

const Colour Image::BitmapData::getPixelColour ( int  x,
int  y 
) const

Returns the colour of a given pixel.

For performance reasons, this won't do any bounds-checking on the coordinates, so it's the caller's repsonsibility to make sure they're within the image's size.

void Image::BitmapData::setPixelColour ( int  x,
int  y,
const Colour colour 
) const

Sets the colour of a given pixel.

For performance reasons, this won't do any bounds-checking on the coordinates, so it's the caller's repsonsibility to make sure they're within the image's size.


Member Data Documentation


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines