X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_format.h;h=0fb570f6ee495299777c5df4413f6485becb11e6;hb=695cdee67827ee2c11e1445eb2022d3a530f1b23;hp=3f5ac3201b1b2c35e73f245f2964592615df021b;hpb=49680dae5dd014503974f20c0b943244622ca3d5;p=mesa.git diff --git a/src/mesa/state_tracker/st_format.h b/src/mesa/state_tracker/st_format.h index 3f5ac3201b1..0fb570f6ee4 100644 --- a/src/mesa/state_tracker/st_format.h +++ b/src/mesa/state_tracker/st_format.h @@ -1,6 +1,7 @@ /************************************************************************** * * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright (c) 2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -29,51 +30,57 @@ #ifndef ST_FORMAT_H #define ST_FORMAT_H +#include "main/formats.h" +#include "main/glheader.h" -struct pipe_format_info -{ - enum pipe_format format; - GLenum base_format; - GLenum datatype; - GLubyte red_bits; - GLubyte green_bits; - GLubyte blue_bits; - GLubyte alpha_bits; - GLubyte luminance_bits; - GLubyte intensity_bits; - GLubyte depth_bits; - GLubyte stencil_bits; - GLubyte size; /**< in bytes */ -}; - - -GLboolean -st_get_format_info(enum pipe_format format, struct pipe_format_info *pinfo); - - -extern GLuint -st_sizeof_format(enum pipe_format format); +#include "pipe/p_defines.h" +#include "pipe/p_format.h" +struct gl_context; +struct pipe_screen; extern GLenum st_format_datatype(enum pipe_format format); extern enum pipe_format -st_mesa_format_to_pipe_format(GLuint mesaFormat); +st_mesa_format_to_pipe_format(gl_format mesaFormat); + +extern gl_format +st_pipe_format_to_mesa_format(enum pipe_format pipeFormat); extern enum pipe_format -st_choose_format(struct pipe_context *pipe, GLint internalFormat, - enum pipe_texture_target target, unsigned tex_usage); +st_choose_format(struct pipe_screen *screen, GLenum internalFormat, + enum pipe_texture_target target, unsigned sample_count, + unsigned tex_usage); extern enum pipe_format -st_choose_renderbuffer_format(struct pipe_context *pipe, GLint internalFormat); +st_choose_renderbuffer_format(struct pipe_screen *screen, + GLenum internalFormat, unsigned sample_count); + +gl_format +st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat, + GLenum format, GLenum type, GLboolean renderable); -extern const struct gl_texture_format * -st_ChooseTextureFormat(GLcontext * ctx, GLint internalFormat, +extern gl_format +st_ChooseTextureFormat(struct gl_context * ctx, GLint internalFormat, GLenum format, GLenum type); -#endif /* ST_CB_TEXIMAGE_H */ +extern GLboolean +st_equal_formats(enum pipe_format pFormat, GLenum format, GLenum type); + +/* can we use a sampler view to translate these formats + only used to make TFP so far */ +extern GLboolean +st_sampler_compat_formats(enum pipe_format format1, enum pipe_format format2); + + +extern void +st_translate_color(const GLfloat colorIn[4], GLenum baseFormat, + GLfloat colorOut[4]); + + +#endif /* ST_FORMAT_H */