目次 - API(機能別) - ピクセル形式と変換 - SDL_PixelFormatEnum

# SDL_PixelFormatEnum

ピクセル形式の列挙体

## 値

### ピクセル形式のマクロ

SDL_PIXELTYPE(format) | ピクセル形式の種類 (詳細を参照すること)
SDL_PIXELORDER(format) | ピクセル形式のチャネルまたはビットの順番 (詳細を参照すること)
SDL_PIXELLAYOUT(format) | ピクセル形式のチャネルのビットパターン (詳細を参照すること)
SDL_BITSPERPIXEL(format) | ピクセル形式の色情報のビット数
SDL_BYTESPERPIXEL(format) | ピクセルのバイト数
SDL_ISPIXELFORMAT_INDEXED(format) | 真のときパレットを持っている
SDL_ISPIXELFORMAT_ALPHA(format) | 真のときαチャネルを持っている
SDL_ISPIXELFORMAT_FOURCC(format) | 真のときYUVのような特別なフォーマットを持つ

### ピクセル形式の値

SDL_PIXELFORMAT_UNKNOWN |
SDL_PIXELFORMAT_INDEX1LSB |
SDL_PIXELFORMAT_INDEX1MSB |
SDL_PIXELFORMAT_INDEX4LSB |
SDL_PIXELFORMAT_INDEX4MSB |
SDL_PIXELFORMAT_INDEX8 |
SDL_PIXELFORMAT_RGB332 |
SDL_PIXELFORMAT_RGB444 |
SDL_PIXELFORMAT_RGB555 |
SDL_PIXELFORMAT_BGR555 |
SDL_PIXELFORMAT_ARGB4444 |
SDL_PIXELFORMAT_RGBA4444 |
SDL_PIXELFORMAT_ABGR4444 |
SDL_PIXELFORMAT_BGRA4444 |
SDL_PIXELFORMAT_ARGB1555 |
SDL_PIXELFORMAT_RGBA5551 |
SDL_PIXELFORMAT_ABGR1555 |
SDL_PIXELFORMAT_BGRA5551 |
SDL_PIXELFORMAT_RGB565 |
SDL_PIXELFORMAT_BGR565 |
SDL_PIXELFORMAT_RGB24 |
SDL_PIXELFORMAT_BGR24 |
SDL_PIXELFORMAT_RGB888 |
SDL_PIXELFORMAT_RGBX8888 |
SDL_PIXELFORMAT_BGR888 |
SDL_PIXELFORMAT_BGRX8888 |
SDL_PIXELFORMAT_ARGB8888 |
SDL_PIXELFORMAT_RGBA8888 |
SDL_PIXELFORMAT_ABGR8888 |
SDL_PIXELFORMAT_BGRA8888 |
SDL_PIXELFORMAT_ARGB2101010 |
SDL_PIXELFORMAT_RGBA32 | 現在の環境のRGBA順のバイト配列の色データのエイリアス (SDL 2.0.5以降)
SDL_PIXELFORMAT_ARGB32 | 現在の環境のARGB順のバイト配列の色データのエイリアス (SDL 2.0.5以降)
SDL_PIXELFORMAT_BGRA32 | 現在の環境のBGRA順のバイト配列の色データのエイリアス (SDL 2.0.5以降)
SDL_PIXELFORMAT_ABGR32 | 現在の環境のABGR順のバイト配列の色データのエイリアス (SDL 2.0.5以降)
SDL_PIXELFORMAT_YV12 | 均等モード: Y + V + U (3プレーン)
SDL_PIXELFORMAT_IYUV | 均等モード: Y + U + V (3プレーン)
SDL_PIXELFORMAT_YUY2 | 圧縮モード: Y0+U0+Y1+V0 (1プレーン)
SDL_PIXELFORMAT_UYVY | 圧縮モード: U0+Y0+V0+Y1 (1プレーン)
SDL_PIXELFORMAT_YVYU | 圧縮モード: Y0+V0+Y1+U0 (1プレーン)

### SDL_PIXELFORMAT_*32 エイリアス

SDL_PIXELFORMAT_RGBA32は, ビッグエンディアンではSDL_PIXELFORMAT_RGBA8888, リトルエンディアンではSDL_PIXELFORMAT_ABGR8888のエイリアスで, (SDL_PIXELFORMAT_RGB24でRGB順のバイト配列とするのと同じように) ピクセルをRGBA順のバイト配列で指定できる.

しかし, これは単なるエイリアスで, 実際の値はエイリアス先の値と同じである. よって, SDL_GetPixelFormatName(SDL_PIXELFORMAT_RGBA32) は環境に依存したエイリアス元の名前を戻す. (例えば"SDL_PIXELFORMAT_ABGR8888")

SDL_PIXELFORMAT_ARGB32, SDL_PIXELFORMAT_BGRA32, SDL_PIXELFORMAT_ABGR32も同様である. (当然, エイリアス先のピクセル形式だけは異なる.)

SDL_PIXELFORMAT_*32エイリアスはSDL 2.0.5以降で使える.

## 詳細

ピクセル形式の種類は以下の値である

SDL_PIXELTYPE_UNKNOWN
SDL_PIXELTYPE_INDEX1
SDL_PIXELTYPE_INDEX4
SDL_PIXELTYPE_INDEX8
SDL_PIXELTYPE_PACKED8
SDL_PIXELTYPE_PACKED16
SDL_PIXELTYPE_PACKED32
SDL_PIXELTYPE_ARRAYU8
SDL_PIXELTYPE_ARRAYU16
SDL_PIXELTYPE_ARRAYU32
SDL_PIXELTYPE_ARRAYF16
SDL_PIXELTYPE_ARRAYF32

ピクセル形式の種類によって3つの順序(ビットマップ, 圧縮, 索引)が存在する

ビットマップピクセル順 (上位ビット→下位ビット)
SDL_BITMAPORDER_NONE
SDL_BITMAPORDER_4321
SDL_BITMAPORDER_1234
圧縮チャネル順 (上位ビット→下位ビット)
SDL_PACKEDORDER_NONE
SDL_PACKEDORDER_XRGB
SDL_PACKEDORDER_RGBX
SDL_PACKEDORDER_ARGB
SDL_PACKEDORDER_RGBA
SDL_PACKEDORDER_XBGR
SDL_PACKEDORDER_BGRX
SDL_PACKEDORDER_ABGR
SDL_PACKEDORDER_BGRA
索引チャネル順 (下位バイト→上位バイト)
SDL_ARRAYORDER_NONE
SDL_ARRAYORDER_RGB
SDL_ARRAYORDER_RGBA
SDL_ARRAYORDER_ARGB
SDL_ARRAYORDER_BGR
SDL_ARRAYORDER_BGRA
SDL_ARRAYORDER_ABGR

圧縮ピクセルフォーマットは以下のチャネル配置の1つである

SDL_PACKEDLAYOUT_NONE
SDL_PACKEDLAYOUT_332
SDL_PACKEDLAYOUT_4444
SDL_PACKEDLAYOUT_1555
SDL_PACKEDLAYOUT_5551
SDL_PACKEDLAYOUT_565
SDL_PACKEDLAYOUT_8888
SDL_PACKEDLAYOUT_2101010
SDL_PACKEDLAYOUT_1010102

## 関連項目(構造体)

SDL_DisplayMode
SDL_RendererInfo

## 関連項目(関数)

SDL_CreateTexture
SDL_CreateTextureFromSurface
SDL_GetPixelFormatName
SDL_MasksToPixelFormatEnum
SDL_PixelFormatEnumToMasks
SDL_QueryTexture
SDL_RenderReadPixels

## SDL Wikiへのリンク

SDL_PixelFormatEnum