blob: f53054d55d302800a44c24c5577b954e9ee974bb [file] [log] [blame]
#include "intel_context.h"
#include "intel_tex.h"
#include "main/enums.h"
#include "main/formats.h"
/**
* Returns the renderbuffer DataType for a MESA_FORMAT.
*/
GLenum
intel_mesa_format_to_rb_datatype(gl_format format)
{
switch (format) {
case MESA_FORMAT_ARGB8888:
case MESA_FORMAT_XRGB8888:
case MESA_FORMAT_SARGB8:
case MESA_FORMAT_R8:
case MESA_FORMAT_GR88:
case MESA_FORMAT_A8:
case MESA_FORMAT_I8:
case MESA_FORMAT_L8:
case MESA_FORMAT_AL88:
case MESA_FORMAT_RGB565:
case MESA_FORMAT_ARGB1555:
case MESA_FORMAT_ARGB4444:
case MESA_FORMAT_S8:
return GL_UNSIGNED_BYTE;
case MESA_FORMAT_R16:
case MESA_FORMAT_RG1616:
case MESA_FORMAT_Z16:
return GL_UNSIGNED_SHORT;
case MESA_FORMAT_X8_Z24:
return GL_UNSIGNED_INT;
case MESA_FORMAT_S8_Z24:
return GL_UNSIGNED_INT_24_8_EXT;
case MESA_FORMAT_RGBA_FLOAT32:
case MESA_FORMAT_RG_FLOAT32:
case MESA_FORMAT_R_FLOAT32:
case MESA_FORMAT_INTENSITY_FLOAT32:
case MESA_FORMAT_LUMINANCE_FLOAT32:
case MESA_FORMAT_ALPHA_FLOAT32:
case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32:
return GL_FLOAT;
/* The core depthstencil wrappers demand this. */
case MESA_FORMAT_Z32_FLOAT_X24S8:
return GL_FLOAT_32_UNSIGNED_INT_24_8_REV;
default:
/* Unsupported format. We may hit this when people ask for FBO-incomplete
* formats.
*/
return GL_NONE;
}
}
int intel_compressed_num_bytes(GLuint mesaFormat)
{
GLuint bw, bh;
GLuint block_size;
block_size = _mesa_get_format_bytes(mesaFormat);
_mesa_get_format_block_size(mesaFormat, &bw, &bh);
return block_size / bw;
}