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 getRowSkip() const
Get the number of elements between one past the rightmost pixel of one row and the leftmost pixel of ...
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.
size_t getSliceSkip() const
Get the number of elements between one past the right bottom pixel of one slice and the left top pixe...
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).
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.
This source file is part of OGRE (Object-oriented Graphics Rendering Engine) For the latest info...
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)...
bool isConsecutive() const
Return whether this buffer is laid out consecutive in memory (ie the pitches are equal to the dimensi...
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...
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)...