X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_format.h;h=0a8e3bc921f973645f4c7d95cbd0b93c1ad57908;hb=7f0b6a5df8e360e52a97f59948dda927fe9df15e;hp=9d9e02fe9b62bb32b69ef247d628ce8c593111a2;hpb=edb02671704aeb60e3eeaa7f58c73f4845c5b7e2;p=mesa.git diff --git a/src/mesa/state_tracker/st_format.h b/src/mesa/state_tracker/st_format.h index 9d9e02fe9b6..0a8e3bc921f 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 2007 VMware, Inc. + * Copyright (c) 2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +19,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -29,55 +30,58 @@ #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 */ -}; +#include "pipe/p_format.h" +#ifdef __cplusplus +extern "C" { +#endif -GLboolean -st_get_format_info(enum pipe_format format, struct pipe_format_info *pinfo); +struct gl_context; +struct pipe_screen; -extern GLuint -st_sizeof_format(enum pipe_format format); - +extern enum pipe_format +st_mesa_format_to_pipe_format(const struct st_context *st, mesa_format mesaFormat); -extern GLenum -st_format_datatype(enum pipe_format format); +extern mesa_format +st_pipe_format_to_mesa_format(enum pipe_format pipeFormat); extern enum pipe_format -st_mesa_format_to_pipe_format(GLuint mesaFormat); - +st_choose_format(struct st_context *st, GLenum internalFormat, + GLenum format, GLenum type, + enum pipe_texture_target target, unsigned sample_count, + unsigned storage_sample_count, + unsigned bindings, bool swap_bytes, bool allow_dxt); extern enum pipe_format -st_choose_format(struct pipe_context *pipe, GLenum internalFormat, - enum pipe_texture_target target, unsigned tex_usage); +st_choose_renderbuffer_format(struct st_context *st, + GLenum internalFormat, unsigned sample_count, + unsigned storage_sample_count); extern enum pipe_format -st_choose_renderbuffer_format(struct pipe_context *pipe, GLenum internalFormat); - +st_choose_matching_format(struct st_context *st, unsigned bind, + GLenum format, GLenum type, GLboolean swapBytes); -extern const struct gl_texture_format * -st_ChooseTextureFormat(GLcontext * ctx, GLint internalFormat, +extern mesa_format +st_ChooseTextureFormat(struct gl_context * ctx, GLenum target, + GLint internalFormat, GLenum format, GLenum type); +void +st_QueryInternalFormat(struct gl_context *ctx, GLenum target, + GLenum internalFormat, GLenum pname, GLint *params); -extern GLboolean -st_equal_formats(enum pipe_format pFormat, GLenum format, GLenum type); +extern void +st_translate_color(const union gl_color_union *colorIn, + union pipe_color_union *colorOut, + GLenum baseFormat, GLboolean is_integer); +#ifdef __cplusplus +} +#endif -#endif /* ST_CB_TEXIMAGE_H */ +#endif /* ST_FORMAT_H */