summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/draw/draw_vertex.h
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-01-23 15:27:00 +1100
committerBen Skeggs <skeggsb@gmail.com>2008-01-23 15:27:00 +1100
commit9043323f1437f9c6791845b3ddbb9af912b45110 (patch)
treed9620f127c0789c8f7b2cbf91e6a035884f6612a /src/mesa/pipe/draw/draw_vertex.h
parent4481c6c0b3e90450b20f1e7b4a0edc3ce346a4bb (diff)
parent286380020b146d600ac86d519ddfbf765a5965b2 (diff)
Merge branch 'upstream-gallium-0.1' into darktama-gallium-0.1
Diffstat (limited to 'src/mesa/pipe/draw/draw_vertex.h')
-rw-r--r--src/mesa/pipe/draw/draw_vertex.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/mesa/pipe/draw/draw_vertex.h b/src/mesa/pipe/draw/draw_vertex.h
index 8bb328affa..e4f85bc49f 100644
--- a/src/mesa/pipe/draw/draw_vertex.h
+++ b/src/mesa/pipe/draw/draw_vertex.h
@@ -41,12 +41,13 @@ struct draw_context;
* Vertex attribute format
*/
enum attrib_format {
- FORMAT_OMIT,
+ FORMAT_OMIT, /**< don't emit the attribute */
FORMAT_1F,
+ FORMAT_1F_PSIZE, /**< insert constant point size */
FORMAT_2F,
FORMAT_3F,
FORMAT_4F,
- FORMAT_4UB
+ FORMAT_4UB /**< XXX may need variations for RGBA vs BGRA, etc */
};
@@ -70,6 +71,7 @@ struct vertex_info
uint hwfmt[4]; /**< hardware format info for this format */
enum interp_mode interp_mode[PIPE_MAX_SHADER_OUTPUTS];
enum attrib_format format[PIPE_MAX_SHADER_OUTPUTS]; /**< FORMAT_x */
+ uint src_index[PIPE_MAX_SHADER_OUTPUTS];
uint size; /**< total vertex size in dwords */
};
@@ -77,16 +79,20 @@ struct vertex_info
/**
* Add another attribute to the given vertex_info object.
+ * \param src_index indicates which post-transformed vertex attrib slot
+ * corresponds to this attribute.
* \return slot in which the attribute was added
*/
static INLINE uint
draw_emit_vertex_attr(struct vertex_info *vinfo,
- enum attrib_format format, enum interp_mode interp)
+ enum attrib_format format, enum interp_mode interp,
+ uint src_index)
{
const uint n = vinfo->num_attribs;
assert(n < PIPE_MAX_SHADER_OUTPUTS);
vinfo->format[n] = format;
vinfo->interp_mode[n] = interp;
+ vinfo->src_index[n] = src_index;
vinfo->num_attribs++;
return n;
}