Go to the documentation of this file.
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);
@ PF_ATC_RGB
ATC (AMD_compressed_ATC_texture)
unsigned long long uint64
@ PF_R16_UINT
16-bit pixel format, 16 bits red (unsigned int).
@ PF_R8G8_SINT
16-bit pixel format, 8 bits red (signed int), 8 bits blue (signed int).
@ PF_R9G9B9E5_SHAREDEXP
32-bit pixel format, 9 bits for blue, green, red plus a 5 bit exponent.
@ PF_FLOAT32_GR
64-bit, 2-channel floating point pixel format, 32-bit green, 32-bit red
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
@ PF_UNKNOWN
Unknown pixel format.
PixelBox()
Parameter constructor for setting the members manually.
@ PF_BYTE_LA
2 byte pixel format, 1 byte luminance, 1 byte alpha
PixelFormatFlags
Flags defining some on/off properties of pixel formats.
@ PF_R8G8B8A8_SNORM
32-bit pixel format, 8 bits red (signed normalised int), 8 bits blue (signed normalised int),...
@ PF_R8
8-bit pixel format, all bits red.
@ PF_A8
8-bit pixel format, all bits alpha.
@ PF_BYTE_RGBA
4 byte pixel format, 1 byte for red, 1 byte for green, 1 byte for blue, and one byte for alpha
@ PF_SHORT_GR
32-bit pixel format, 16-bit green, 16-bit red
@ PF_L16
16-bit pixel format, all bits luminance.
@ PF_R8_SNORM
8-bit pixel format, 8 bits red (signed normalised int).
@ PF_ATC_RGBA_EXPLICIT_ALPHA
ATC (AMD_compressed_ATC_texture)
@ PF_DXT4
DDS (DirectDraw Surface) DXT4 format.
@ PF_R3G3B2
8-bit pixel format, 2 bits blue, 3 bits green, 3 bits red.
@ PF_FLOAT16_RGB
48-bit pixel format, 16 bits (float) for red, 16 bits (float) for green, 16 bits (float) for blue
size_t slicePitch
Number of elements between the top left pixel of one (depth) slice and the top left pixel of the next...
@ PF_R8G8B8A8_UINT
32-bit pixel format, 8 bits red (unsigned int), 8 bits blue (unsigned int), 8 bits green (unsigned in...
@ PF_X8B8G8R8
32-bit pixel format, 8 bits for blue, 8 bits for green, 8 bits for red like PF_A8B8G8R8,...
@ PF_R16G16_SINT
32-bit pixel format, 16 bits red (signed int), 16 bits blue (signed int).
@ PCT_FLOAT16
Short per component (16 bit fixed 0.0..1.0))
@ PF_ETC1_RGB8
ETC1 (Ericsson Texture Compression)
@ PF_R8G8_UINT
16-bit pixel format, 8 bits red (unsigned int), 8 bits blue (unsigned int).
@ PF_R8G8B8A8_SINT
32-bit pixel format, 8 bits red (signed int), 8 bits blue (signed int), 8 bits green (signed int),...
vector< PixelFormat >::type PixelFormatList
@ PF_BC7_UNORM_SRGB
DDS (DirectDraw Surface) BC7 format (unsigned normalised sRGB)
@ PF_R8G8B8_UINT
24-bit pixel format, 8 bits red (unsigned int), 8 bits blue (unsigned int), 8 bits green (unsigned in...
PixelComponentType
Pixel component format.
@ PF_PVRTC_RGB4
PVRTC (PowerVR) RGB 4 bpp.
@ PF_RG8
16-bit pixel format, 8 bits red, 8 bits green.
@ PF_R32G32B32_SINT
96-bit pixel format, 32 bits red (signed int), 32 bits blue (signed int), 32 bits green (signed int).
@ PF_DXT2
DDS (DirectDraw Surface) DXT2 format.
@ PF_FLOAT32_RGBA
128-bit pixel format, 32 bits (float) for red, 32 bits (float) for green, 32 bits (float) for blue,...
@ PF_R16G16B16A16_UINT
64-bit pixel format, 16 bits red (unsigned int), 16 bits blue (unsigned int), 16 bits green (unsigned...
@ PF_R5G6B5
16-bit pixel format, 5 bits red, 6 bits green, 5 bits blue.
@ PF_R8G8B8_SINT
24-bit pixel format, 8 bits red (signed int), 8 bits blue (signed int), 8 bits green (signed int).
@ PF_R32_SINT
32-bit pixel format, 32 bits red (signed int).
@ PF_BYTE_RGB
3 byte pixel format, 1 byte for red, 1 byte for green, 1 byte for blue
@ PFF_LUMINANCE
This is an intensity format instead of a RGB one.
@ PF_FLOAT32_RGB
96-bit pixel format, 32 bits (float) for red, 32 bits (float) for green, 32 bits (float) for blue
bool isConsecutive() const
Return whether this buffer is laid out consecutive in memory (ie the pitches are equal to the dimensi...
@ PCT_FLOAT32
16 bit float per component
@ PF_A1R5G5B5
16-bit pixel format, 5 bits for blue, green, red and 1 for alpha.
@ PF_A4R4G4B4
16-bit pixel format, 4 bits for alpha, red, green and blue.
@ PCT_COUNT
Unsigned integer per component.
@ PF_R16_SNORM
16-bit pixel format, 16 bits red (signed normalised int).
@ PF_R8_UINT
8-bit pixel format, 8 bits red (unsigned int).
@ PF_B5G6R5
16-bit pixel format, 5 bits red, 6 bits green, 5 bits blue.
@ PF_BC5_SNORM
DDS (DirectDraw Surface) BC5 format (signed normalised)
@ PF_L8
8-bit pixel format, all bits luminance.
@ PF_R16_SINT
16-bit pixel format, 16 bits red (signed int).
@ PFF_NATIVEENDIAN
Format is in native endian.
@ PF_R16G16B16_SINT
48-bit pixel format, 16 bits red (signed int), 16 bits blue (signed int), 16 bits green (signed int).
@ PF_PVRTC_RGB2
PVRTC (PowerVR) RGB 2 bpp.
@ PF_R8G8B8A8
32-bit pixel format, 8 bits for red, green, blue and alpha.
@ PF_A2B10G10R10
32-bit pixel format, 10 bits for blue, green and red, 2 bits for alpha.
@ PF_PVRTC_RGBA4
PVRTC (PowerVR) RGBA 4 bpp.
@ PF_SHORT_RGBA
64-bit pixel format, 16 bits for red, green, blue and alpha
@ PF_R32G32B32_UINT
96-bit pixel format, 32 bits red (unsigned int), 32 bits blue (unsigned int), 32 bits green (unsigned...
@ PFF_DEPTH
This is a depth format (for depth textures)
@ PF_R32_UINT
32-bit pixel format, 32 bits red (unsigned int).
PixelFormat
The pixel format used for images, textures, and render surfaces.
@ PF_PVRTC2_2BPP
PVRTC (PowerVR) Version 2, 2 bpp.
@ PCT_SINT
32 bit float per component
@ PF_DEPTH
Depth texture format.
@ PFF_INTEGER
This is an integer format.
@ PF_BC7_UNORM
DDS (DirectDraw Surface) BC7 format (unsigned normalised)
@ PF_R32G32B32A32_UINT
128-bit pixel format, 32 bits red (unsigned int), 32 bits blue (unsigned int), 32 bits green (unsigne...
@ PF_R11G11B10_FLOAT
32-bit pixel format, 11 bits (float) for red, 11 bits (float) for green, 10 bits (float) for blue
@ PF_R32G32B32A32_SINT
128-bit pixel format, 32 bits red (signed int), 32 bits blue (signed int), 32 bits green (signed int)...
Structure used to define a box in a 3-D integer space.
size_t getRowSkip() const
Get the number of elements between one past the rightmost pixel of one row and the leftmost pixel of ...
@ PFF_HASALPHA
This format has an alpha channel.
@ PF_R8G8_SNORM
16-bit pixel format, 8 bits red (signed normalised int), 8 bits blue (signed normalised int).
@ PF_R16G16B16A16_SINT
64-bit pixel format, 16 bits red (signed int), 16 bits blue (signed int), 16 bits green (signed int),...
@ PF_R32G32_SINT
64-bit pixel format, 32 bits red (signed int), 32 bits blue (signed int).
@ PCT_UINT
Signed integer per component.
@ PFF_COMPRESSED
This format is compressed.
@ PF_BYTE_BGRA
4 byte pixel format, 1 byte for blue, 1 byte for green, 1 byte for red and one byte for alpha
void setConsecutive()
Set the rowPitch and slicePitch so that the buffer is laid out consecutive in memory.
void * data
The data pointer.
@ PF_ATC_RGBA_INTERPOLATED_ALPHA
ATC (AMD_compressed_ATC_texture)
Class representing colour.
A primitive describing a volume (3D), image (2D) or line (1D) of pixels in memory.
PixelBox(const Box &extents, PixelFormat pixelFormat, void *pixelData=0)
Constructor providing extents in the form of a Box object.
size_t getSliceSkip() const
Get the number of elements between one past the right bottom pixel of one slice and the left top pixe...
@ PF_R8G8B8_SNORM
24-bit pixel format, 8 bits red (signed normalised int), 8 bits blue (signed normalised int),...
@ PF_A4L4
8-bit pixel format, 4 bits alpha, 4 bits luminance.
Some utility functions for packing and unpacking pixel data.
@ PF_DXT5
DDS (DirectDraw Surface) DXT5 format.
@ PF_BC4_UNORM
DDS (DirectDraw Surface) BC4 format (unsigned normalised)
@ PF_DXT1
DDS (DirectDraw Surface) DXT1 format.
PixelBox(uint32 width, uint32 height, uint32 depth, PixelFormat pixelFormat, void *pixelData=0)
Constructor providing width, height and depth.
@ PF_A8R8G8B8
32-bit pixel format, 8 bits for alpha, red, green and blue.
@ PF_A8B8G8R8
32-bit pixel format, 8 bits for blue, green, red and alpha.
@ PCT_SHORT
Byte per component (8 bit fixed 0.0..1.0)
@ PF_R16G16B16_SNORM
48-bit pixel format, 16 bits red (signed normalised int), 16 bits blue (signed normalised int),...
@ PF_B8G8R8A8
32-bit pixel format, 8 bits for blue, green, red and alpha.
@ PF_BYTE_BGR
3 byte pixel format, 1 byte for blue, 1 byte for green, 1 byte for red
PixelFormat format
The pixel format.
@ PF_FLOAT16_GR
32-bit, 2-channel s10e5 floating point pixel format, 16-bit green, 16-bit red
@ PF_R8G8B8
24-bit pixel format, 8 bits for red, green and blue.
@ PF_DXT3
DDS (DirectDraw Surface) DXT3 format.
@ PF_BC6H_SF16
DDS (DirectDraw Surface) BC6H format (signed 16 bit float)
@ PF_R16G16B16_UINT
48-bit pixel format, 16 bits red (unsigned int), 16 bits blue (unsigned int), 16 bits green (unsigned...
@ PF_BC6H_UF16
DDS (DirectDraw Surface) BC6H format (unsigned 16 bit float)
@ PF_FLOAT16_R
16-bit pixel format, 16 bits (float) for red
@ PF_R16G16_UINT
32-bit pixel format, 16 bits red (unsigned int), 16 bits blue (unsigned int).
@ PFF_FLOAT
This is a floating point format.
@ PF_R8_SINT
8-bit pixel format, 8 bits red (signed int).
@ PF_ETC2_RGBA8
ETC2 (Ericsson Texture Compression)
@ PF_ETC2_RGB8
ETC2 (Ericsson Texture Compression)
@ PF_SHORT_RGB
48-bit pixel format, 16 bits for red, green and blue
@ PF_R32G32_UINT
64-bit pixel format, 32 bits red (unsigned int), 32 bits blue (unsigned int).
@ PF_A2R10G10B10
32-bit pixel format, 2 bits for alpha, 10 bits for red, green and blue.
@ PF_BC5_UNORM
DDS (DirectDraw Surface) BC5 format (unsigned normalised)
@ PF_B8G8R8
24-bit pixel format, 8 bits for blue, green and red.
@ PF_X8R8G8B8
32-bit pixel format, 8 bits for red, 8 bits for green, 8 bits for blue like PF_A8R8G8B8,...
@ PF_R16G16_SNORM
32-bit pixel format, 16 bits red (signed normalised int), 16 bits blue (signed normalised int).
size_t rowPitch
Number of elements between the leftmost pixel of one row and the left pixel of the next.
@ PF_PVRTC2_4BPP
PVRTC (PowerVR) Version 2, 4 bpp.
@ PF_PVRTC_RGBA2
PVRTC (PowerVR) RGBA 2 bpp.
@ PF_FLOAT16_RGBA
64-bit pixel format, 16 bits (float) for red, 16 bits (float) for green, 16 bits (float) for blue,...
@ PF_ETC2_RGB8A1
ETC2 (Ericsson Texture Compression)
@ PF_BC4_SNORM
DDS (DirectDraw Surface) BC4 format (signed normalised)
@ PF_R16G16B16A16_SNORM
64-bit pixel format, 16 bits red (signed normalised int), 16 bits blue (signed normalised int),...
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Tue Apr 13 2021 08:53:15