cso_set_vertex_shader_handle(st->cso_context,
st->vp_variant->driver_shader);
-
- st->vertex_result_to_slot = stvp->result_to_output;
}
* color and texcoord attribs to use here.
*/
- slot = st->vertex_result_to_slot[VARYING_SLOT_COL0];
+ slot = st->vp->result_to_output[VARYING_SLOT_COL0];
if (slot != ~0U)
color = v->data[slot];
else
color = ctx->Current.Attrib[VERT_ATTRIB_COLOR0];
- slot = st->vertex_result_to_slot[VARYING_SLOT_TEX0];
+ slot = st->vp->result_to_output[VARYING_SLOT_TEX0];
if (slot != ~0U)
texcoord = v->data[slot];
else
#include "st_context.h"
#include "st_atom.h"
#include "st_draw.h"
+#include "st_program.h"
#include "st_cb_rasterpos.h"
#include "draw/draw_context.h"
#include "draw/draw_pipe.h"
struct gl_context *ctx = rs->ctx;
struct st_context *st = st_context(ctx);
const GLfloat height = (GLfloat) ctx->DrawBuffer->Height;
- const ubyte *outputMapping = st->vertex_result_to_slot;
+ const ubyte *outputMapping = st->vp->result_to_output;
const GLfloat *pos;
GLuint i;
GLboolean vertdata_edgeflags;
GLboolean edgeflag_culls_prims;
- /** Mapping from VARYING_SLOT_x to post-transformed vertex slot */
- const ubyte *vertex_result_to_slot;
-
struct st_vertex_program *vp; /**< Currently bound vertex program */
struct st_fragment_program *fp; /**< Currently bound fragment program */
struct st_geometry_program *gp; /**< Currently bound geometry program */