#include <GL/gl.h>
#include <stdbool.h>
#include <stdint.h>
-#include "compiler.h"
#ifdef __cplusplus
extern "C" {
MESA_FORMAT_LAYOUT_ETC2,
MESA_FORMAT_LAYOUT_BPTC,
MESA_FORMAT_LAYOUT_ASTC,
+ MESA_FORMAT_LAYOUT_ATC,
MESA_FORMAT_LAYOUT_OTHER,
};
MESA_FORMAT_B4G4R4X4_UNORM, /* xxxx RRRR GGGG BBBB */
MESA_FORMAT_A4R4G4B4_UNORM, /* BBBB GGGG RRRR AAAA */
MESA_FORMAT_A1B5G5R5_UNORM, /* RRRR RGGG GGBB BBBA */
+ MESA_FORMAT_X1B5G5R5_UNORM, /* BBBB BGGG GGRR RRRX */
MESA_FORMAT_B5G5R5A1_UNORM, /* ARRR RRGG GGGB BBBB */
MESA_FORMAT_B5G5R5X1_UNORM, /* xRRR RRGG GGGB BBBB */
MESA_FORMAT_A1R5G5B5_UNORM, /* BBBB BGGG GGRR RRRA */
MESA_FORMAT_X8B8G8R8_SRGB, /* RRRR RRRR GGGG GGGG BBBB BBBB xxxx xxxx */
MESA_FORMAT_L8A8_SRGB, /* AAAA AAAA LLLL LLLL */
MESA_FORMAT_A8L8_SRGB, /* LLLL LLLL AAAA AAAA */
+ MESA_FORMAT_R_SRGB8, /* RRRR RRRR */
/* Array sRGB formats */
MESA_FORMAT_L_SRGB8, /* ubyte[i] = L */
MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5x5,
MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x5,
MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x6,
+
+ /* ATC compressed formats */
+ MESA_FORMAT_ATC_RGB,
+ MESA_FORMAT_ATC_RGBA_EXPLICIT,
+ MESA_FORMAT_ATC_RGBA_INTERPOLATED,
+
MESA_FORMAT_COUNT
} mesa_format;
extern const char *
_mesa_get_format_name(mesa_format format);
-extern GLint
+extern int
_mesa_get_format_bytes(mesa_format format);
extern GLint
_mesa_get_format_bits(mesa_format format, GLenum pname);
-extern GLuint
+extern unsigned int
_mesa_get_format_max_bits(mesa_format format);
extern enum mesa_format_layout
_mesa_get_format_base_format(uint32_t format);
extern void
-_mesa_get_format_block_size(mesa_format format, GLuint *bw, GLuint *bh);
+_mesa_get_format_block_size(mesa_format format,
+ unsigned int *bw, unsigned int *bh);
extern void
-_mesa_get_format_block_size_3d(mesa_format format, GLuint *bw,
- GLuint *bh, GLuint *bd);
+_mesa_get_format_block_size_3d(mesa_format format, unsigned int *bw,
+ unsigned int *bh, unsigned int *bd);
extern mesa_array_format
_mesa_array_format_flip_channels(mesa_array_format format);
extern mesa_format
_mesa_format_from_array_format(uint32_t array_format);
-extern GLboolean
+extern bool
_mesa_is_format_compressed(mesa_format format);
-extern GLboolean
+extern bool
_mesa_is_format_packed_depth_stencil(mesa_format format);
-extern GLboolean
+extern bool
_mesa_is_format_integer_color(mesa_format format);
-extern GLboolean
+extern bool
_mesa_is_format_unsigned(mesa_format format);
-extern GLboolean
+extern bool
_mesa_is_format_signed(mesa_format format);
-extern GLboolean
+extern bool
_mesa_is_format_integer(mesa_format format);
extern bool
_mesa_is_format_etc2(mesa_format format);
-GLenum
+bool
+_mesa_is_format_astc_2d(mesa_format format);
+
+bool
_mesa_is_format_color_format(mesa_format format);
-extern GLenum
-_mesa_get_format_color_encoding(mesa_format format);
+bool
+_mesa_is_format_srgb(mesa_format format);
-extern GLuint
-_mesa_format_image_size(mesa_format format, GLsizei width,
- GLsizei height, GLsizei depth);
+extern uint32_t
+_mesa_format_image_size(mesa_format format, int width,
+ int height, int depth);
extern uint64_t
-_mesa_format_image_size64(mesa_format format, GLsizei width,
- GLsizei height, GLsizei depth);
+_mesa_format_image_size64(mesa_format format, int width,
+ int height, int depth);
-extern GLint
-_mesa_format_row_stride(mesa_format format, GLsizei width);
+extern int32_t
+_mesa_format_row_stride(mesa_format format, int width);
extern void
_mesa_uncompressed_format_to_type_and_comps(mesa_format format,
extern mesa_format
_mesa_get_srgb_format_linear(mesa_format format);
+extern mesa_format
+_mesa_get_linear_format_srgb(mesa_format format);
+
extern mesa_format
_mesa_get_uncompressed_format(mesa_format format);
-extern GLuint
+extern unsigned int
_mesa_format_num_components(mesa_format format);
extern bool
_mesa_format_has_color_component(mesa_format format, int component);
-GLboolean
+bool
_mesa_format_matches_format_and_type(mesa_format mesa_format,
GLenum format, GLenum type,
- GLboolean swapBytes, GLenum *error);
+ bool swapBytes, GLenum *error);
mesa_format
_mesa_format_fallback_rgbx_to_rgba(mesa_format format);