formats.h revision bb5ace68ce9e8bd171a39162ed6bd93632bd6619
199ac02bb701c1e30b20f2174aac25ffbe487c0afreed@google.com/*
2a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary * Mesa 3-D graphics library
399ac02bb701c1e30b20f2174aac25ffbe487c0afreed@google.com * Version:  7.7
499ac02bb701c1e30b20f2174aac25ffbe487c0afreed@google.com *
599ac02bb701c1e30b20f2174aac25ffbe487c0afreed@google.com * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
699ac02bb701c1e30b20f2174aac25ffbe487c0afreed@google.com * Copyright (c) 2008-2009  VMware, Inc.
799ac02bb701c1e30b20f2174aac25ffbe487c0afreed@google.com *
899ac02bb701c1e30b20f2174aac25ffbe487c0afreed@google.com * Permission is hereby granted, free of charge, to any person obtaining a
9a1f1ee98a1f6d0770f6243270ca2f0e6c92efabahalcanary * copy of this software and associated documentation files (the "Software"),
105867736b08d3689356b49f505bcf748c2194a0bcreed * to deal in the Software without restriction, including without limitation
11a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary * the rights to use, copy, modify, merge, publish, distribute, sublicense,
122f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary * and/or sell copies of the Software, and to permit persons to whom the
13a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary * Software is furnished to do so, subject to the following conditions:
14f12a1673f024d30d30f06b9f88b5cc072b8a2d1ehalcanary *
15a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary * The above copyright notice and this permission notice shall be included
1634422610ac22adceeabb66023120f27b96cae953halcanary * in all copies or substantial portions of the Software.
17a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary *
18f12a1673f024d30d30f06b9f88b5cc072b8a2d1ehalcanary * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19f12a1673f024d30d30f06b9f88b5cc072b8a2d1ehalcanary * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
22a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
23a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary */
25a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
26a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary/*
27a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary * Authors:
28a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary *   Brian Paul
2937c46cad21632cfc1411b08d73af37a1fffe2944halcanary */
3037c46cad21632cfc1411b08d73af37a1fffe2944halcanary
31a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
32a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary#ifndef FORMATS_H
33f12a1673f024d30d30f06b9f88b5cc072b8a2d1ehalcanary#define FORMATS_H
3434422610ac22adceeabb66023120f27b96cae953halcanary
3534422610ac22adceeabb66023120f27b96cae953halcanary
36a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary#include <GL/gl.h>
3734422610ac22adceeabb66023120f27b96cae953halcanary
3834422610ac22adceeabb66023120f27b96cae953halcanary
39a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
4072266fd1fe9bfe078239a9d9e85f479faee30281halcanary/**
41f12a1673f024d30d30f06b9f88b5cc072b8a2d1ehalcanary * Mesa texture/renderbuffer image formats.
4234422610ac22adceeabb66023120f27b96cae953halcanary */
4334422610ac22adceeabb66023120f27b96cae953halcanarytypedef enum
4434422610ac22adceeabb66023120f27b96cae953halcanary{
4534422610ac22adceeabb66023120f27b96cae953halcanary   MESA_FORMAT_NONE = 0,
46a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
4737c46cad21632cfc1411b08d73af37a1fffe2944halcanary   /**
48a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary    * \name Basic hardware formats
49a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary    */
50a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   /*@{*/
51a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary				/* msb <------ TEXEL BITS -----------> lsb */
52a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary				/* ---- ---- ---- ---- ---- ---- ---- ---- */
532f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA8888,	/* RRRR RRRR GGGG GGGG BBBB BBBB AAAA AAAA */
542f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA8888_REV,	/* AAAA AAAA BBBB BBBB GGGG GGGG RRRR RRRR */
5537c46cad21632cfc1411b08d73af37a1fffe2944halcanary   MESA_FORMAT_ARGB8888,	/* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */
5637c46cad21632cfc1411b08d73af37a1fffe2944halcanary   MESA_FORMAT_ARGB8888_REV,	/* BBBB BBBB GGGG GGGG RRRR RRRR AAAA AAAA */
57a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_XRGB8888,	/* xxxx xxxx RRRR RRRR GGGG GGGG BBBB BBBB */
58a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_XRGB8888_REV,	/* BBBB BBBB GGGG GGGG RRRR RRRR xxxx xxxx */
592f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGB888,		/*           RRRR RRRR GGGG GGGG BBBB BBBB */
602f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_BGR888,		/*           BBBB BBBB GGGG GGGG RRRR RRRR */
61a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_RGB565,		/*                     RRRR RGGG GGGB BBBB */
62a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_RGB565_REV,	/*                     GGGB BBBB RRRR RGGG */
63a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_ARGB4444,	/*                     AAAA RRRR GGGG BBBB */
64a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_ARGB4444_REV,	/*                     GGGG BBBB AAAA RRRR */
65a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_RGBA5551,        /*                     RRRR RGGG GGBB BBBA */
66a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_ARGB1555,	/*                     ARRR RRGG GGGB BBBB */
67a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_ARGB1555_REV,	/*                     GGGB BBBB ARRR RRGG */
6837c46cad21632cfc1411b08d73af37a1fffe2944halcanary   MESA_FORMAT_AL44,		/*                               AAAA LLLL */
69a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_AL88,		/*                     AAAA AAAA LLLL LLLL */
70a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_AL88_REV,	/*                     LLLL LLLL AAAA AAAA */
71a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_AL1616,          /* AAAA AAAA AAAA AAAA LLLL LLLL LLLL LLLL */
72a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_AL1616_REV,      /* LLLL LLLL LLLL LLLL AAAA AAAA AAAA AAAA */
73a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_RGB332,		/*                               RRRG GGBB */
7472266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_A8,		/*                               AAAA AAAA */
7572266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_A16,             /*                     AAAA AAAA AAAA AAAA */
76385fe4d4b62d7d1dd76116dd570df3290a2f487bhalcanary   MESA_FORMAT_L8,		/*                               LLLL LLLL */
7772266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_L16,             /*                     LLLL LLLL LLLL LLLL */
7872266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_I8,		/*                               IIII IIII */
792f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_CI8,		/*                               CCCC CCCC */
80385fe4d4b62d7d1dd76116dd570df3290a2f487bhalcanary   MESA_FORMAT_YCBCR,		/*                     YYYY YYYY UorV UorV */
8172266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_YCBCR_REV,	/*                     UorV UorV YYYY YYYY */
8272266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_R8,		/*                               RRRR RRRR */
83ef6c50a80f77e6da84e198a34755dd42b1b0cf1ewangxianzhu   MESA_FORMAT_RG88,		/*                     RRRR RRRR GGGG GGGG */
84ef6c50a80f77e6da84e198a34755dd42b1b0cf1ewangxianzhu   MESA_FORMAT_RG88_REV,	/*                     GGGG GGGG RRRR RRRR */
85ef6c50a80f77e6da84e198a34755dd42b1b0cf1ewangxianzhu   MESA_FORMAT_R16,		/*                     RRRR RRRR RRRR RRRR */
86ef6c50a80f77e6da84e198a34755dd42b1b0cf1ewangxianzhu   MESA_FORMAT_RG1616,		/* RRRR RRRR RRRR RRRR GGGG GGGG GGGG GGGG */
872f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RG1616_REV,	/* GGGG GGGG GGGG GGGG RRRR RRRR RRRR RRRR */
8872266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_ARGB2101010,     /* AARR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */
892f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_Z24_S8,          /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ SSSS SSSS */
902f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_S8_Z24,          /* SSSS SSSS ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */
912f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_Z16,             /*                     ZZZZ ZZZZ ZZZZ ZZZZ */
922f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_X8_Z24,          /* xxxx xxxx ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */
932f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_Z24_X8,          /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ xxxx xxxx */
942f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_Z32,             /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */
952f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_S8,              /*                               SSSS SSSS */
962f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /*@}*/
972f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary
982f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /**
992f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    * \name 8-bit/channel sRGB formats
1002f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    */
1012f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /*@{*/
1022f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SRGB8,
1032f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SRGBA8,
1042f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SARGB8,
1052f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SL8,
1062f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SLA8,
1072f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SRGB_DXT1,
1082f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SRGBA_DXT1,
1092f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SRGBA_DXT3,
1102f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SRGBA_DXT5,
1112f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /*@}*/
1122f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary
1132f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /**
1142f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    * \name Compressed texture formats.
1152f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    */
1162f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /*@{*/
1172f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGB_FXT1,
1182f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_FXT1,
1192f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGB_DXT1,
1202f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_DXT1,
1212f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_DXT3,
1222f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_DXT5,
1232f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /*@}*/
12472266fd1fe9bfe078239a9d9e85f479faee30281halcanary
1252f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /**
1262f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    * \name Floating point texture formats.
1272f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    */
1282f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /*@{*/
1292f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_FLOAT32,
13072266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_RGBA_FLOAT16,
13172266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_RGB_FLOAT32,
1322f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGB_FLOAT16,
1332f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_ALPHA_FLOAT32,
1342f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_ALPHA_FLOAT16,
1352f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_LUMINANCE_FLOAT32,
1362f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_LUMINANCE_FLOAT16,
1372f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32,
1382f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16,
1392f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_INTENSITY_FLOAT32,
1402f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_INTENSITY_FLOAT16,
1412f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /*@}*/
1422f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary
1432f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /**
1442f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    * \name Non-normalized signed integer formats.
1452f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    * XXX Note: these are just stand-ins for some better hardware
1462f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    * formats TBD such as BGRA or ARGB.
1472f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    */
1482f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_INT8,
1492f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_INT16,
1502f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_INT32,
1512f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary
1522f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /**
15372266fd1fe9bfe078239a9d9e85f479faee30281halcanary    * \name Non-normalized unsigned integer formats.
15472266fd1fe9bfe078239a9d9e85f479faee30281halcanary    */
15572266fd1fe9bfe078239a9d9e85f479faee30281halcanary   MESA_FORMAT_RGBA_UINT8,
1562f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_UINT16,
1572f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_RGBA_UINT32,
1582f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary
1592f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary                                  /* msb <------ TEXEL BITS -----------> lsb */
1602f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary                                  /* ---- ---- ---- ---- ---- ---- ---- ---- */
1612f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /**
1622f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    * \name Signed fixed point texture formats.
1632f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary    */
1642f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /*@{*/
1652f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_DUDV8,             /*                     DUDU DUDU DVDV DVDV */
1662f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SIGNED_R8,         /*                               RRRR RRRR */
1672f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SIGNED_RG88,       /*                     RRRR RRRR GGGG GGGG */
1682f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   MESA_FORMAT_SIGNED_RGBX8888,   /* RRRR RRRR GGGG GGGG BBBB BBBB xxxx xxxx */
169a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_SIGNED_RGBA8888,   /* RRRR RRRR GGGG GGGG BBBB BBBB AAAA AAAA */
17034422610ac22adceeabb66023120f27b96cae953halcanary   MESA_FORMAT_SIGNED_RGBA8888_REV,/*AAAA AAAA BBBB BBBB GGGG GGGG RRRR RRRR */
171a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_SIGNED_R_16,       /* ushort[0]=R */
172a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_SIGNED_RG_16,      /* ushort[0]=R, ushort[1]=G */
173a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_SIGNED_RGB_16,     /* ushort[0]=R, ushort[1]=G, ushort[2]=B */
174a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_SIGNED_RGBA_16,    /* ... */
175a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_RGBA_16,           /* ... */
1762f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary   /*@}*/
177385fe4d4b62d7d1dd76116dd570df3290a2f487bhalcanary
178a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary   MESA_FORMAT_COUNT
179a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary} gl_format;
180a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
181a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
182a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanaryextern const char *
1832f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary_mesa_get_format_name(gl_format format);
1842f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanary
185a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanaryextern GLuint
186a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary_mesa_get_format_bytes(gl_format format);
187a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
188385fe4d4b62d7d1dd76116dd570df3290a2f487bhalcanaryextern GLint
189a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary_mesa_get_format_bits(gl_format format, GLenum pname);
19034422610ac22adceeabb66023120f27b96cae953halcanary
19134422610ac22adceeabb66023120f27b96cae953halcanaryextern GLenum
19234422610ac22adceeabb66023120f27b96cae953halcanary_mesa_get_format_datatype(gl_format format);
19334422610ac22adceeabb66023120f27b96cae953halcanary
19434422610ac22adceeabb66023120f27b96cae953halcanaryextern GLenum
19534422610ac22adceeabb66023120f27b96cae953halcanary_mesa_get_format_base_format(gl_format format);
19634422610ac22adceeabb66023120f27b96cae953halcanary
19734422610ac22adceeabb66023120f27b96cae953halcanaryextern void
19834422610ac22adceeabb66023120f27b96cae953halcanary_mesa_get_format_block_size(gl_format format, GLuint *bw, GLuint *bh);
19934422610ac22adceeabb66023120f27b96cae953halcanary
20034422610ac22adceeabb66023120f27b96cae953halcanaryextern GLboolean
20134422610ac22adceeabb66023120f27b96cae953halcanary_mesa_is_format_compressed(gl_format format);
20234422610ac22adceeabb66023120f27b96cae953halcanary
20334422610ac22adceeabb66023120f27b96cae953halcanaryextern GLboolean
20434422610ac22adceeabb66023120f27b96cae953halcanary_mesa_is_format_packed_depth_stencil(gl_format format);
20534422610ac22adceeabb66023120f27b96cae953halcanary
20634422610ac22adceeabb66023120f27b96cae953halcanaryextern GLboolean
20734422610ac22adceeabb66023120f27b96cae953halcanary_mesa_is_format_integer_color(gl_format format);
20834422610ac22adceeabb66023120f27b96cae953halcanary
20934422610ac22adceeabb66023120f27b96cae953halcanaryextern GLenum
21034422610ac22adceeabb66023120f27b96cae953halcanary_mesa_get_format_color_encoding(gl_format format);
21134422610ac22adceeabb66023120f27b96cae953halcanary
21234422610ac22adceeabb66023120f27b96cae953halcanaryextern GLuint
21334422610ac22adceeabb66023120f27b96cae953halcanary_mesa_format_image_size(gl_format format, GLsizei width,
21434422610ac22adceeabb66023120f27b96cae953halcanary                        GLsizei height, GLsizei depth);
21534422610ac22adceeabb66023120f27b96cae953halcanary
21634422610ac22adceeabb66023120f27b96cae953halcanaryextern uint64_t
21734422610ac22adceeabb66023120f27b96cae953halcanary_mesa_format_image_size64(gl_format format, GLsizei width,
21834422610ac22adceeabb66023120f27b96cae953halcanary                          GLsizei height, GLsizei depth);
219a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
2202f7ebcb424cd1d1acf07478157f86b0a3eafd712halcanaryextern GLint
22172266fd1fe9bfe078239a9d9e85f479faee30281halcanary_mesa_format_row_stride(gl_format format, GLsizei width);
222a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
22372266fd1fe9bfe078239a9d9e85f479faee30281halcanaryextern void
22472266fd1fe9bfe078239a9d9e85f479faee30281halcanary_mesa_format_to_type_and_comps(gl_format format,
22572266fd1fe9bfe078239a9d9e85f479faee30281halcanary                               GLenum *datatype, GLuint *comps);
226a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary
227a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanaryextern void
22837c46cad21632cfc1411b08d73af37a1fffe2944halcanary_mesa_test_formats(void);
22937c46cad21632cfc1411b08d73af37a1fffe2944halcanary
230a43b41538ad6af0f2b7742b4ade8265d344b9d64halcanary#endif /* FORMATS_H */
23137c46cad21632cfc1411b08d73af37a1fffe2944halcanary