Home | History | Annotate | Download | only in util
      1 /**************************************************************************
      2  *
      3  * Copyright 2009 VMware, Inc.
      4  * All Rights Reserved.
      5  *
      6  * Permission is hereby granted, free of charge, to any person obtaining a
      7  * copy of this software and associated documentation files (the
      8  * "Software"), to deal in the Software without restriction, including
      9  * without limitation the rights to use, copy, modify, merge, publish,
     10  * distribute, sub license, and/or sell copies of the Software, and to
     11  * permit persons to whom the Software is furnished to do so, subject to
     12  * the following conditions:
     13  *
     14  * The above copyright notice and this permission notice (including the
     15  * next paragraph) shall be included in all copies or substantial portions
     16  * of the Software.
     17  *
     18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     19  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
     21  * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
     22  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
     23  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
     24  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     25  *
     26  **************************************************************************/
     27 
     28 /**
     29  * @file
     30  * Dump data in human/machine readable format.
     31  *
     32  * @author Jose Fonseca <jfonseca (at) vmware.com>
     33  */
     34 
     35 #ifndef U_DEBUG_DUMP_H_
     36 #define U_DEBUG_DUMP_H_
     37 
     38 
     39 #include "pipe/p_compiler.h"
     40 #include "pipe/p_state.h"
     41 
     42 #include <stdio.h>
     43 
     44 
     45 #ifdef	__cplusplus
     46 extern "C" {
     47 #endif
     48 
     49 
     50 #define UTIL_DUMP_INVALID_NAME "<invalid>"
     51 
     52 
     53 /*
     54  * p_defines.h
     55  *
     56  * XXX: These functions don't really dump anything -- just translate into
     57  * strings so a verb better than "dump" should be used instead, in order to
     58  * free up the namespace to the true dumper functions.
     59  */
     60 
     61 const char *
     62 util_dump_blend_factor(unsigned value, boolean shortened);
     63 
     64 const char *
     65 util_dump_blend_func(unsigned value, boolean shortened);
     66 
     67 const char *
     68 util_dump_logicop(unsigned value, boolean shortened);
     69 
     70 const char *
     71 util_dump_func(unsigned value, boolean shortened);
     72 
     73 const char *
     74 util_dump_stencil_op(unsigned value, boolean shortened);
     75 
     76 const char *
     77 util_dump_tex_target(unsigned value, boolean shortened);
     78 
     79 const char *
     80 util_dump_tex_wrap(unsigned value, boolean shortened);
     81 
     82 const char *
     83 util_dump_tex_mipfilter(unsigned value, boolean shortened);
     84 
     85 const char *
     86 util_dump_tex_filter(unsigned value, boolean shortened);
     87 
     88 const char *
     89 util_dump_query_type(unsigned value, boolean shortened);
     90 
     91 const char *
     92 util_dump_prim_mode(unsigned value, boolean shortened);
     93 
     94 
     95 /*
     96  * p_state.h, through a FILE
     97  */
     98 
     99 void
    100 util_dump_resource(FILE *stream, const struct pipe_resource *state);
    101 
    102 void
    103 util_dump_rasterizer_state(FILE *stream,
    104                            const struct pipe_rasterizer_state *state);
    105 
    106 void
    107 util_dump_poly_stipple(FILE *stream,
    108                        const struct pipe_poly_stipple *state);
    109 
    110 void
    111 util_dump_viewport_state(FILE *stream,
    112                          const struct pipe_viewport_state *state);
    113 
    114 void
    115 util_dump_scissor_state(FILE *stream,
    116                         const struct pipe_scissor_state *state);
    117 
    118 void
    119 util_dump_clip_state(FILE *stream,
    120                      const struct pipe_clip_state *state);
    121 
    122 void
    123 util_dump_shader_state(FILE *stream,
    124                        const struct pipe_shader_state *state);
    125 
    126 void
    127 util_dump_depth_stencil_alpha_state(FILE *stream,
    128                                     const struct pipe_depth_stencil_alpha_state *state);
    129 
    130 void
    131 util_dump_rt_blend_state(FILE *stream,
    132                          const struct pipe_rt_blend_state *state);
    133 
    134 void
    135 util_dump_blend_state(FILE *stream,
    136                       const struct pipe_blend_state *state);
    137 
    138 void
    139 util_dump_blend_color(FILE *stream,
    140                       const struct pipe_blend_color *state);
    141 
    142 void
    143 util_dump_stencil_ref(FILE *stream,
    144                       const struct pipe_stencil_ref *state);
    145 
    146 void
    147 util_dump_framebuffer_state(FILE *stream,
    148                             const struct pipe_framebuffer_state *state);
    149 
    150 void
    151 util_dump_sampler_state(FILE *stream,
    152                         const struct pipe_sampler_state *state);
    153 
    154 void
    155 util_dump_surface(FILE *stream,
    156                   const struct pipe_surface *state);
    157 
    158 void
    159 util_dump_image_view(FILE *stream, const struct pipe_image_view *state);
    160 
    161 void
    162 util_dump_shader_buffer(FILE *stream, const struct pipe_shader_buffer *state);
    163 
    164 void
    165 util_dump_sampler_view(FILE *stream, const struct pipe_sampler_view *state);
    166 
    167 void
    168 util_dump_transfer(FILE *stream,
    169                    const struct pipe_transfer *state);
    170 
    171 void
    172 util_dump_constant_buffer(FILE *stream,
    173                           const struct pipe_constant_buffer *state);
    174 
    175 void
    176 util_dump_index_buffer(FILE *stream, const struct pipe_index_buffer *state);
    177 
    178 void
    179 util_dump_vertex_buffer(FILE *stream,
    180                         const struct pipe_vertex_buffer *state);
    181 
    182 void
    183 util_dump_vertex_element(FILE *stream,
    184                          const struct pipe_vertex_element *state);
    185 
    186 void
    187 util_dump_stream_output_target(FILE *stream,
    188                                const struct pipe_stream_output_target *state);
    189 
    190 void
    191 util_dump_draw_info(FILE *stream, const struct pipe_draw_info *state);
    192 
    193 void
    194 util_dump_box(FILE *stream, const struct pipe_box *box);
    195 
    196 void
    197 util_dump_blit_info(FILE *stream, const struct pipe_blit_info *info);
    198 
    199 /* FIXME: Move the other debug_dump_xxx functions out of u_debug.h into here. */
    200 
    201 
    202 #ifdef	__cplusplus
    203 }
    204 #endif
    205 
    206 #endif /* U_DEBUG_H_ */
    207