befa615d1e66c2154195e8a725fce37c17956acf
[mesa.git] / src / mesa / drivers / dri / intel / intel_tex_format.c
1 #include "intel_context.h"
2 #include "intel_tex.h"
3 #include "main/enums.h"
4 #include "main/formats.h"
5
6 /**
7 * Returns the renderbuffer DataType for a MESA_FORMAT.
8 */
9 GLenum
10 intel_mesa_format_to_rb_datatype(gl_format format)
11 {
12 switch (format) {
13 case MESA_FORMAT_ARGB8888:
14 case MESA_FORMAT_XRGB8888:
15 case MESA_FORMAT_SARGB8:
16 case MESA_FORMAT_R8:
17 case MESA_FORMAT_RG88:
18 case MESA_FORMAT_A8:
19 case MESA_FORMAT_I8:
20 case MESA_FORMAT_L8:
21 case MESA_FORMAT_AL88:
22 case MESA_FORMAT_RGB565:
23 case MESA_FORMAT_ARGB1555:
24 case MESA_FORMAT_ARGB4444:
25 return GL_UNSIGNED_BYTE;
26 case MESA_FORMAT_R16:
27 case MESA_FORMAT_RG1616:
28 case MESA_FORMAT_Z16:
29 return GL_UNSIGNED_SHORT;
30 case MESA_FORMAT_X8_Z24:
31 return GL_UNSIGNED_INT;
32 case MESA_FORMAT_S8_Z24:
33 return GL_UNSIGNED_INT_24_8_EXT;
34 case MESA_FORMAT_RGBA_FLOAT32:
35 case MESA_FORMAT_RG_FLOAT32:
36 case MESA_FORMAT_R_FLOAT32:
37 case MESA_FORMAT_INTENSITY_FLOAT32:
38 case MESA_FORMAT_LUMINANCE_FLOAT32:
39 case MESA_FORMAT_ALPHA_FLOAT32:
40 case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32:
41 return GL_FLOAT;
42
43 default:
44 _mesa_problem(NULL, "unexpected MESA_FORMAT for renderbuffer");
45 return GL_UNSIGNED_BYTE;
46 }
47 }
48
49 int intel_compressed_num_bytes(GLuint mesaFormat)
50 {
51 GLuint bw, bh;
52 GLuint block_size;
53
54 block_size = _mesa_get_format_bytes(mesaFormat);
55 _mesa_get_format_block_size(mesaFormat, &bw, &bh);
56
57 return block_size / bw;
58 }