formats.h revision 0be369975fdfa79bcb702d0c13aa0a221055f61b
1813870fd9588de101f68728507cff726d7513695Brian Paul/* 2813870fd9588de101f68728507cff726d7513695Brian Paul * Mesa 3-D graphics library 3813870fd9588de101f68728507cff726d7513695Brian Paul * Version: 7.7 4813870fd9588de101f68728507cff726d7513695Brian Paul * 5813870fd9588de101f68728507cff726d7513695Brian Paul * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. 6813870fd9588de101f68728507cff726d7513695Brian Paul * Copyright (c) 2008-2009 VMware, Inc. 7813870fd9588de101f68728507cff726d7513695Brian Paul * 8813870fd9588de101f68728507cff726d7513695Brian Paul * Permission is hereby granted, free of charge, to any person obtaining a 9813870fd9588de101f68728507cff726d7513695Brian Paul * copy of this software and associated documentation files (the "Software"), 10813870fd9588de101f68728507cff726d7513695Brian Paul * to deal in the Software without restriction, including without limitation 11813870fd9588de101f68728507cff726d7513695Brian Paul * the rights to use, copy, modify, merge, publish, distribute, sublicense, 12813870fd9588de101f68728507cff726d7513695Brian Paul * and/or sell copies of the Software, and to permit persons to whom the 13813870fd9588de101f68728507cff726d7513695Brian Paul * Software is furnished to do so, subject to the following conditions: 14813870fd9588de101f68728507cff726d7513695Brian Paul * 15813870fd9588de101f68728507cff726d7513695Brian Paul * The above copyright notice and this permission notice shall be included 16813870fd9588de101f68728507cff726d7513695Brian Paul * in all copies or substantial portions of the Software. 17813870fd9588de101f68728507cff726d7513695Brian Paul * 18813870fd9588de101f68728507cff726d7513695Brian Paul * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19813870fd9588de101f68728507cff726d7513695Brian Paul * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20813870fd9588de101f68728507cff726d7513695Brian Paul * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21813870fd9588de101f68728507cff726d7513695Brian Paul * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 22813870fd9588de101f68728507cff726d7513695Brian Paul * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 23813870fd9588de101f68728507cff726d7513695Brian Paul * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24813870fd9588de101f68728507cff726d7513695Brian Paul */ 25813870fd9588de101f68728507cff726d7513695Brian Paul 26813870fd9588de101f68728507cff726d7513695Brian Paul/* 27813870fd9588de101f68728507cff726d7513695Brian Paul * Authors: 28813870fd9588de101f68728507cff726d7513695Brian Paul * Brian Paul 29813870fd9588de101f68728507cff726d7513695Brian Paul */ 30813870fd9588de101f68728507cff726d7513695Brian Paul 31813870fd9588de101f68728507cff726d7513695Brian Paul 32813870fd9588de101f68728507cff726d7513695Brian Paul#ifndef FORMATS_H 33813870fd9588de101f68728507cff726d7513695Brian Paul#define FORMATS_H 34813870fd9588de101f68728507cff726d7513695Brian Paul 35813870fd9588de101f68728507cff726d7513695Brian Paul 367e4e79be6bba7cf68046bd77aa8d44fb52ca5186Vinson Lee#include <GL/gl.h> 37813870fd9588de101f68728507cff726d7513695Brian Paul 384d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák/* OpenGL doesn't have GL_UNSIGNED_BYTE_4_4, so we must define our own type 394d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák * for GL_LUMINANCE4_ALPHA4. */ 404d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák#define MESA_UNSIGNED_BYTE_4_4 (GL_UNSIGNED_BYTE<<1) 41813870fd9588de101f68728507cff726d7513695Brian Paul 42813870fd9588de101f68728507cff726d7513695Brian Paul 43813870fd9588de101f68728507cff726d7513695Brian Paul/** 44813870fd9588de101f68728507cff726d7513695Brian Paul * Mesa texture/renderbuffer image formats. 45813870fd9588de101f68728507cff726d7513695Brian Paul */ 46813870fd9588de101f68728507cff726d7513695Brian Paultypedef enum 47813870fd9588de101f68728507cff726d7513695Brian Paul{ 48e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul MESA_FORMAT_NONE = 0, 493fa7dbf368bb060220e9f78e666b00d6827166a6Brian Paul 50813870fd9588de101f68728507cff726d7513695Brian Paul /** 51813870fd9588de101f68728507cff726d7513695Brian Paul * \name Basic hardware formats 52813870fd9588de101f68728507cff726d7513695Brian Paul */ 53813870fd9588de101f68728507cff726d7513695Brian Paul /*@{*/ 54813870fd9588de101f68728507cff726d7513695Brian Paul /* msb <------ TEXEL BITS -----------> lsb */ 55813870fd9588de101f68728507cff726d7513695Brian Paul /* ---- ---- ---- ---- ---- ---- ---- ---- */ 56813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA8888, /* RRRR RRRR GGGG GGGG BBBB BBBB AAAA AAAA */ 57813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA8888_REV, /* AAAA AAAA BBBB BBBB GGGG GGGG RRRR RRRR */ 58813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB8888, /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */ 59813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB8888_REV, /* BBBB BBBB GGGG GGGG RRRR RRRR AAAA AAAA */ 6074d61d03b54d72217d463c248468cdcd09320efcBrian Paul MESA_FORMAT_XRGB8888, /* xxxx xxxx RRRR RRRR GGGG GGGG BBBB BBBB */ 612d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer MESA_FORMAT_XRGB8888_REV, /* BBBB BBBB GGGG GGGG RRRR RRRR xxxx xxxx */ 62813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB888, /* RRRR RRRR GGGG GGGG BBBB BBBB */ 63813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_BGR888, /* BBBB BBBB GGGG GGGG RRRR RRRR */ 64813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB565, /* RRRR RGGG GGGB BBBB */ 65813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB565_REV, /* GGGB BBBB RRRR RGGG */ 66813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB4444, /* AAAA RRRR GGGG BBBB */ 67813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB4444_REV, /* GGGG BBBB AAAA RRRR */ 68813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA5551, /* RRRR RGGG GGBB BBBA */ 69813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB1555, /* ARRR RRGG GGGB BBBB */ 70813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB1555_REV, /* GGGB BBBB ARRR RRGG */ 71bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák MESA_FORMAT_AL44, /* AAAA LLLL */ 72813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_AL88, /* AAAA AAAA LLLL LLLL */ 73813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_AL88_REV, /* LLLL LLLL AAAA AAAA */ 74eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick MESA_FORMAT_AL1616, /* AAAA AAAA AAAA AAAA LLLL LLLL LLLL LLLL */ 75eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick MESA_FORMAT_AL1616_REV, /* LLLL LLLL LLLL LLLL AAAA AAAA AAAA AAAA */ 76813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB332, /* RRRG GGBB */ 77813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_A8, /* AAAA AAAA */ 78eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák MESA_FORMAT_A16, /* AAAA AAAA AAAA AAAA */ 79813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_L8, /* LLLL LLLL */ 80bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák MESA_FORMAT_L16, /* LLLL LLLL LLLL LLLL */ 81813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_I8, /* IIII IIII */ 82fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák MESA_FORMAT_I16, /* IIII IIII IIII IIII */ 83813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_CI8, /* CCCC CCCC */ 84813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_YCBCR, /* YYYY YYYY UorV UorV */ 85813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_YCBCR_REV, /* UorV UorV YYYY YYYY */ 865d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_R8, /* RRRR RRRR */ 875d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_RG88, /* RRRR RRRR GGGG GGGG */ 885d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_RG88_REV, /* GGGG GGGG RRRR RRRR */ 895d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_R16, /* RRRR RRRR RRRR RRRR */ 905d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_RG1616, /* RRRR RRRR RRRR RRRR GGGG GGGG GGGG GGGG */ 915d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_RG1616_REV, /* GGGG GGGG GGGG GGGG RRRR RRRR RRRR RRRR */ 92621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák MESA_FORMAT_ARGB2101010, /* AARR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */ 93813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_Z24_S8, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ SSSS SSSS */ 94813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_S8_Z24, /* SSSS SSSS ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */ 95813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_Z16, /* ZZZZ ZZZZ ZZZZ ZZZZ */ 96e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul MESA_FORMAT_X8_Z24, /* xxxx xxxx ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */ 97c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca MESA_FORMAT_Z24_X8, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ xxxx xxxx */ 98813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_Z32, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */ 99813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_S8, /* SSSS SSSS */ 100813870fd9588de101f68728507cff726d7513695Brian Paul /*@}*/ 101813870fd9588de101f68728507cff726d7513695Brian Paul 102813870fd9588de101f68728507cff726d7513695Brian Paul /** 103813870fd9588de101f68728507cff726d7513695Brian Paul * \name 8-bit/channel sRGB formats 104813870fd9588de101f68728507cff726d7513695Brian Paul */ 105813870fd9588de101f68728507cff726d7513695Brian Paul /*@{*/ 106813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGB8, 107813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA8, 108813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SARGB8, 109813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SL8, 110813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SLA8, 111813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGB_DXT1, 112813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA_DXT1, 113813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA_DXT3, 114813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA_DXT5, 115813870fd9588de101f68728507cff726d7513695Brian Paul /*@}*/ 116813870fd9588de101f68728507cff726d7513695Brian Paul 117813870fd9588de101f68728507cff726d7513695Brian Paul /** 118813870fd9588de101f68728507cff726d7513695Brian Paul * \name Compressed texture formats. 119813870fd9588de101f68728507cff726d7513695Brian Paul */ 120813870fd9588de101f68728507cff726d7513695Brian Paul /*@{*/ 121813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_FXT1, 122813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_FXT1, 123813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_DXT1, 124813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_DXT1, 125813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_DXT3, 126813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_DXT5, 127813870fd9588de101f68728507cff726d7513695Brian Paul /*@}*/ 128813870fd9588de101f68728507cff726d7513695Brian Paul 129813870fd9588de101f68728507cff726d7513695Brian Paul /** 130813870fd9588de101f68728507cff726d7513695Brian Paul * \name Floating point texture formats. 131813870fd9588de101f68728507cff726d7513695Brian Paul */ 132813870fd9588de101f68728507cff726d7513695Brian Paul /*@{*/ 133813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_FLOAT32, 134813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_FLOAT16, 135813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_FLOAT32, 136813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_FLOAT16, 137813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ALPHA_FLOAT32, 138813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ALPHA_FLOAT16, 139813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_FLOAT32, 140813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_FLOAT16, 141813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32, 142813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16, 143813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_INTENSITY_FLOAT32, 144813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_INTENSITY_FLOAT16, 145813870fd9588de101f68728507cff726d7513695Brian Paul /*@}*/ 146813870fd9588de101f68728507cff726d7513695Brian Paul 147abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul /** 148abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul * \name Non-normalized signed integer formats. 149abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul * XXX Note: these are just stand-ins for some better hardware 150abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul * formats TBD such as BGRA or ARGB. 151abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul */ 152abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_INT8, 153abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_INT16, 154abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_INT32, 155abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 156abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul /** 157abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul * \name Non-normalized unsigned integer formats. 158abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul */ 159abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_UINT8, 160abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_UINT16, 161abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_UINT32, 162abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 16384407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul /* msb <------ TEXEL BITS -----------> lsb */ 16484407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul /* ---- ---- ---- ---- ---- ---- ---- ---- */ 165813870fd9588de101f68728507cff726d7513695Brian Paul /** 166813870fd9588de101f68728507cff726d7513695Brian Paul * \name Signed fixed point texture formats. 167813870fd9588de101f68728507cff726d7513695Brian Paul */ 168813870fd9588de101f68728507cff726d7513695Brian Paul /*@{*/ 16984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_DUDV8, /* DUDU DUDU DVDV DVDV */ 17084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_R8, /* RRRR RRRR */ 1710be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_RG88_REV, /* GGGG GGGG RRRR RRRR */ 17284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_RGBX8888, /* RRRR RRRR GGGG GGGG BBBB BBBB xxxx xxxx */ 17384407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_RGBA8888, /* RRRR RRRR GGGG GGGG BBBB BBBB AAAA AAAA */ 17484407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_RGBA8888_REV,/*AAAA AAAA BBBB BBBB GGGG GGGG RRRR RRRR */ 1750be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_R16, /* RRRR RRRR RRRR RRRR */ 1760be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_GR1616, /* GGGG GGGG GGGG GGGG RRRR RRRR RRRR RRRR */ 1777a57af6d11a8fae9838a0d2e42eac6200b8f027eBrian Paul MESA_FORMAT_SIGNED_RGB_16, /* ushort[0]=R, ushort[1]=G, ushort[2]=B */ 1787a57af6d11a8fae9838a0d2e42eac6200b8f027eBrian Paul MESA_FORMAT_SIGNED_RGBA_16, /* ... */ 17917e96718946486ef77927fcf3bb299d8bff32b98Brian Paul MESA_FORMAT_RGBA_16, /* ... */ 180813870fd9588de101f68728507cff726d7513695Brian Paul /*@}*/ 181813870fd9588de101f68728507cff726d7513695Brian Paul 1828d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie /*@{*/ 1838d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_RED_RGTC1, 1848d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_SIGNED_RED_RGTC1, 1858d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_RG_RGTC2, 1868d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_SIGNED_RG_RGTC2, 1878d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie /*@}*/ 1887d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 1897d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák /*@{*/ 1907d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_L_LATC1, 1917d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_SIGNED_L_LATC1, 1927d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_LA_LATC2, 1937d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_SIGNED_LA_LATC2, 1947d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák /*@}*/ 1957d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 1960be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_A8, /* AAAA AAAA */ 1970be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_L8, /* LLLL LLLL */ 1980be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_AL88, /* AAAA AAAA LLLL LLLL */ 1990be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_I8, /* IIII IIII */ 2000be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_A16, /* AAAA AAAA AAAA AAAA */ 2010be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_L16, /* LLLL LLLL LLLL LLLL */ 2020be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_AL1616, /* AAAA AAAA AAAA AAAA LLLL LLLL LLLL LLLL */ 2030be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_I16, /* IIII IIII IIII IIII */ 2040be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 2050422053eca12b4fb912e0229c96a9d12453e31c4Brian Paul MESA_FORMAT_COUNT 206813870fd9588de101f68728507cff726d7513695Brian Paul} gl_format; 207813870fd9588de101f68728507cff726d7513695Brian Paul 208813870fd9588de101f68728507cff726d7513695Brian Paul 209bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paulextern const char * 210bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul_mesa_get_format_name(gl_format format); 211bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul 212813870fd9588de101f68728507cff726d7513695Brian Paulextern GLuint 213813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_get_format_bytes(gl_format format); 214813870fd9588de101f68728507cff726d7513695Brian Paul 2155978cbdf7728df7952c9c04165ece23394a5fb95Brian Paulextern GLint 2165978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul_mesa_get_format_bits(gl_format format, GLenum pname); 2175978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 2185978cbdf7728df7952c9c04165ece23394a5fb95Brian Paulextern GLenum 2195978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul_mesa_get_format_datatype(gl_format format); 2205978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 221813870fd9588de101f68728507cff726d7513695Brian Paulextern GLenum 222813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_get_format_base_format(gl_format format); 223813870fd9588de101f68728507cff726d7513695Brian Paul 2247b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paulextern void 2257b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul_mesa_get_format_block_size(gl_format format, GLuint *bw, GLuint *bh); 2267b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul 227813870fd9588de101f68728507cff726d7513695Brian Paulextern GLboolean 228813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_is_format_compressed(gl_format format); 229813870fd9588de101f68728507cff726d7513695Brian Paul 230e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowlerextern GLboolean 231e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler_mesa_is_format_packed_depth_stencil(gl_format format); 232e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler 233f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paulextern GLboolean 234412b9608838b872bc294569b3ee913343a7e66f6Brian Paul_mesa_is_format_integer_color(gl_format format); 235f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul 236f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paulextern GLenum 237f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul_mesa_get_format_color_encoding(gl_format format); 238f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul 2391c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paulextern GLuint 2401c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul_mesa_format_image_size(gl_format format, GLsizei width, 2411c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul GLsizei height, GLsizei depth); 2421c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul 24374c324fdbaebb7accaee668f2bc54af4699d0025Brian Paulextern uint64_t 24474c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul_mesa_format_image_size64(gl_format format, GLsizei width, 24574c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul GLsizei height, GLsizei depth); 24674c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul 247040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paulextern GLint 248040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul_mesa_format_row_stride(gl_format format, GLsizei width); 249040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul 250019bc97bd900a84f5f999afdb42928e92d33814bBrian Paulextern void 251019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul_mesa_format_to_type_and_comps(gl_format format, 252019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul GLenum *datatype, GLuint *comps); 253040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul 254813870fd9588de101f68728507cff726d7513695Brian Paulextern void 255813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_test_formats(void); 256813870fd9588de101f68728507cff726d7513695Brian Paul 257edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlieextern gl_format 258edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie_mesa_get_srgb_format_linear(gl_format format); 259edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie 260813870fd9588de101f68728507cff726d7513695Brian Paul#endif /* FORMATS_H */ 261