28 #ifndef _PixelFormat_H__ 29 #define _PixelFormat_H__ 88 #if OGRE_ENDIAN == OGRE_ENDIAN_BIG 317 Box(extents), data(pixelData), format(pixelFormat)
331 Box(0, 0, 0, width, height, depth),
332 data(pixelData), format(pixelFormat)
358 rowPitch = getWidth();
359 slicePitch = getWidth()*getHeight();
370 size_t getSliceSkip()
const {
return slicePitch - (getHeight() * rowPitch); }
377 return rowPitch == getWidth() && slicePitch == getWidth()*getHeight();
382 size_t getConsecutiveSize()
const;
396 void* getTopLeftFrontPixelPtr()
const;
403 ColourValue getColourAt(
size_t x,
size_t y,
size_t z);
410 void setColourAt(
ColourValue const &cv,
size_t x,
size_t y,
size_t z);
425 static size_t getNumElemBytes(
PixelFormat format );
433 static size_t getNumElemBits(
PixelFormat format );
461 static unsigned int getFlags(
PixelFormat format );
490 static bool isValidExtent(
size_t width,
size_t height,
size_t depth,
PixelFormat format);
495 static void getBitDepths(
PixelFormat format,
int rgba[4]);
505 static void getBitShifts(
PixelFormat format,
unsigned char rgba[4]);
538 static PixelFormat getFormatFromName(
const String& name,
bool accessibleOnly =
false,
bool caseSensitive =
false);
547 static String getBNFExpressionOfPixelFormats(
bool accessibleOnly =
false);
581 static void packColour(
const float r,
const float g,
const float b,
const float a,
const PixelFormat pf,
void* dest);
609 static void unpackColour(
float *r,
float *g,
float *b,
float *a,
PixelFormat pf,
const void* src);
619 static void bulkPixelConversion(
void *src,
PixelFormat srcFormat,
void *dst,
PixelFormat dstFormat,
unsigned int count);
634 static void bulkPixelVerticalFlip(
const PixelBox &box);
24-bit pixel format, 8 bits red (unsigned int), 8 bits blue (unsigned int), 8 bits green (unsigned in...
ATC (AMD_compressed_ATC_texture)
16-bit pixel format, 8 bits red, 8 bits green.
64-bit pixel format, 16 bits (float) for red, 16 bits (float) for green, 16 bits (float) for blue...
DDS (DirectDraw Surface) DXT1 format.
size_t slicePitch
Number of elements between the top left pixel of one (depth) slice and the top left pixel of the next...
4 byte pixel format, 1 byte for red, 1 byte for green, 1 byte for blue, and one byte for alpha ...
ATC (AMD_compressed_ATC_texture)
32-bit pixel format, 8 bits for alpha, red, green and blue.
16-bit pixel format, 16 bits red (signed normalised int).
PixelFormat format
The pixel format.
8-bit pixel format, 8 bits red (unsigned int).
ETC2 (Ericsson Texture Compression)
DDS (DirectDraw Surface) DXT4 format.
Short per component (16 bit fixed 0.0..1.0))
16-bit pixel format, 8 bits red (unsigned int), 8 bits blue (unsigned int).
size_t rowPitch
Number of elements between the leftmost pixel of one row and the left pixel of the next...
32-bit pixel format, 10 bits for blue, green and red, 2 bits for alpha.
32-bit pixel format, 16 bits red (unsigned int), 16 bits blue (unsigned int).
8-bit pixel format, 2 bits blue, 3 bits green, 3 bits red.
64-bit pixel format, 32 bits red (unsigned int), 32 bits blue (unsigned int).
unsigned long long uint64
PixelFormatFlags
Flags defining some on/off properties of pixel formats.
vector< PixelFormat >::type PixelFormatList
ETC1 (Ericsson Texture Compression)
48-bit pixel format, 16 bits red (unsigned int), 16 bits blue (unsigned int), 16 bits green (unsigned...
DDS (DirectDraw Surface) DXT2 format.
64-bit pixel format, 16 bits red (unsigned int), 16 bits blue (unsigned int), 16 bits green (unsigned...
16-bit pixel format, 5 bits red, 6 bits green, 5 bits blue.
void setConsecutive()
Set the rowPitch and slicePitch so that the buffer is laid out consecutive in memory.
Class representing colour.
128-bit pixel format, 32 bits red (unsigned int), 32 bits blue (unsigned int), 32 bits green (unsigne...
32-bit pixel format, 8 bits for red, 8 bits for green, 8 bits for blue like PF_A8R8G8B8, but alpha will get discarded
32 bit float per component
Unsigned integer per component.
8-bit pixel format, 8 bits red (signed normalised int).
This is an integer format.
PixelFormat
The pixel format used for images, textures, and render surfaces.
32-bit pixel format, 8 bits red (unsigned int), 8 bits blue (unsigned int), 8 bits green (unsigned in...
16-bit pixel format, 8 bits red (signed normalised int), 8 bits blue (signed normalised int)...
64-bit pixel format, 16 bits red (signed int), 16 bits blue (signed int), 16 bits green (signed int)...
PVRTC (PowerVR) RGB 2 bpp.
ATC (AMD_compressed_ATC_texture)
DDS (DirectDraw Surface) BC4 format (signed normalised)
DDS (DirectDraw Surface) BC5 format (signed normalised)
64-bit pixel format, 16 bits red (signed normalised int), 16 bits blue (signed normalised int)...
8-bit pixel format, all bits luminance.
Structure used to define a box in a 3-D integer space.
96-bit pixel format, 32 bits red (signed int), 32 bits blue (signed int), 32 bits green (signed int)...
32-bit pixel format, 9 bits for blue, green, red plus a 5 bit exponent.
64-bit, 2-channel floating point pixel format, 32-bit green, 32-bit red
PVRTC (PowerVR) RGB 4 bpp.
8-bit pixel format, all bits red.
16-bit pixel format, all bits luminance.
DDS (DirectDraw Surface) DXT5 format.
DDS (DirectDraw Surface) BC4 format (unsigned normalised)
32-bit pixel format, 8 bits for blue, 8 bits for green, 8 bits for red like PF_A8B8G8R8, but alpha will get discarded
PixelComponentType
Pixel component format.
This format has an alpha channel.
48-bit pixel format, 16 bits red (signed int), 16 bits blue (signed int), 16 bits green (signed int)...
PixelBox(uint32 width, uint32 height, uint32 depth, PixelFormat pixelFormat, void *pixelData=0)
Constructor providing width, height and depth.
32-bit pixel format, 32 bits red (unsigned int).
32-bit pixel format, 8 bits for blue, green, red and alpha.
3 byte pixel format, 1 byte for blue, 1 byte for green, 1 byte for red
This format is compressed.
32-bit pixel format, 8 bits for red, green, blue and alpha.
PVRTC (PowerVR) Version 2, 2 bpp.
64-bit pixel format, 16 bits for red, green, blue and alpha
This is a depth format (for depth textures)
DDS (DirectDraw Surface) BC7 format (unsigned normalised sRGB)
64-bit pixel format, 32 bits red (signed int), 32 bits blue (signed int).
48-bit pixel format, 16 bits red (signed normalised int), 16 bits blue (signed normalised int)...
3 byte pixel format, 1 byte for red, 1 byte for green, 1 byte for blue
This is an intensity format instead of a RGB one.
24-bit pixel format, 8 bits for red, green and blue.
16 bit float per component
32-bit pixel format, 32 bits red (signed int).
bool isConsecutive() const
Return whether this buffer is laid out consecutive in memory (ie the pitches are equal to the dimensi...
size_t getRowSkip() const
Get the number of elements between one past the rightmost pixel of one row and the leftmost pixel of ...
ETC2 (Ericsson Texture Compression)
96-bit pixel format, 32 bits (float) for red, 32 bits (float) for green, 32 bits (float) for blue ...
16-bit pixel format, 5 bits for blue, green, red and 1 for alpha.
16-bit pixel format, 4 bits for alpha, red, green and blue.
16-bit pixel format, 5 bits red, 6 bits green, 5 bits blue.
Some utility functions for packing and unpacking pixel data.
Signed integer per component.
16-bit pixel format, 16 bits red (signed int).
Format is in native endian.
PVRTC (PowerVR) RGBA 4 bpp.
PixelBox()
Parameter constructor for setting the members manually.
32-bit, 2-channel s10e5 floating point pixel format, 16-bit green, 16-bit red
DDS (DirectDraw Surface) DXT3 format.
96-bit pixel format, 32 bits red (unsigned int), 32 bits blue (unsigned int), 32 bits green (unsigned...
2 byte pixel format, 1 byte luminance, 1 byte alpha
32-bit pixel format, 11 bits (float) for red, 11 bits (float) for green, 10 bits (float) for blue ...
24-bit pixel format, 8 bits red (signed normalised int), 8 bits blue (signed normalised int)...
8-bit pixel format, 4 bits alpha, 4 bits luminance.
DDS (DirectDraw Surface) BC5 format (unsigned normalised)
DDS (DirectDraw Surface) BC6H format (signed 16 bit float)
8-bit pixel format, all bits alpha.
16-bit pixel format, 16 bits (float) for red
DDS (DirectDraw Surface) BC7 format (unsigned normalised)
This is a floating point format.
ETC2 (Ericsson Texture Compression)
A primitive describing a volume (3D), image (2D) or line (1D) of pixels in memory.
void * data
The data pointer.
32-bit pixel format, 16-bit green, 16-bit red
128-bit pixel format, 32 bits red (signed int), 32 bits blue (signed int), 32 bits green (signed int)...
48-bit pixel format, 16 bits (float) for red, 16 bits (float) for green, 16 bits (float) for blue ...
PVRTC (PowerVR) Version 2, 4 bpp.
4 byte pixel format, 1 byte for blue, 1 byte for green, 1 byte for red and one byte for alpha ...
PixelBox(const Box &extents, PixelFormat pixelFormat, void *pixelData=0)
Constructor providing extents in the form of a Box object.
32-bit pixel format, 8 bits for blue, green, red and alpha.
PVRTC (PowerVR) RGBA 2 bpp.
32-bit pixel format, 16 bits red (signed int), 16 bits blue (signed int).
16-bit pixel format, 8 bits red (signed int), 8 bits blue (signed int).
Byte per component (8 bit fixed 0.0..1.0)
DDS (DirectDraw Surface) BC6H format (unsigned 16 bit float)
8-bit pixel format, 8 bits red (signed int).
48-bit pixel format, 16 bits for red, green and blue
32-bit pixel format, 2 bits for alpha, 10 bits for red, green and blue.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
size_t getSliceSkip() const
Get the number of elements between one past the right bottom pixel of one slice and the left top pixe...
24-bit pixel format, 8 bits for blue, green and red.
16-bit pixel format, 16 bits red (unsigned int).
32-bit pixel format, 8 bits red (signed int), 8 bits blue (signed int), 8 bits green (signed int)...
32-bit pixel format, 16 bits red (signed normalised int), 16 bits blue (signed normalised int)...
128-bit pixel format, 32 bits (float) for red, 32 bits (float) for green, 32 bits (float) for blue...
32-bit pixel format, 8 bits red (signed normalised int), 8 bits blue (signed normalised int)...
24-bit pixel format, 8 bits red (signed int), 8 bits blue (signed int), 8 bits green (signed int)...