目次 - 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