void draw_set_mapped_constant_buffer(struct draw_context *draw, unsigned shader_type, unsigned slot, const void *buffer, unsigned size ) { debug_assert(shader_type == PIPE_SHADER_VERTEX || shader_type == PIPE_SHADER_GEOMETRY); debug_assert(slot < PIPE_MAX_CONSTANT_BUFFERS); switch (shader_type) { case PIPE_SHADER_VERTEX: draw->pt.user.vs_constants[slot] = buffer; draw->pt.user.vs_constants_size[slot] = size; draw->pt.user.planes = (float (*) [12][4]) &(draw->plane[0]); draw_vs_set_constants(draw, slot, buffer, size); break; case PIPE_SHADER_GEOMETRY: draw->pt.user.gs_constants[slot] = buffer; draw->pt.user.gs_constants_size[slot] = size; draw_gs_set_constants(draw, slot, buffer, size); break; default: assert(0 && "invalid shader type in draw_set_mapped_constant_buffer"); } }
void draw_set_mapped_constant_buffer(struct draw_context *draw, unsigned shader_type, unsigned slot, const void *buffer, unsigned size ) { debug_assert(shader_type == PIPE_SHADER_VERTEX || shader_type == PIPE_SHADER_GEOMETRY); debug_assert(slot < PIPE_MAX_CONSTANT_BUFFERS); if (shader_type == PIPE_SHADER_VERTEX) { draw->pt.user.vs_constants[slot] = buffer; draw_vs_set_constants(draw, slot, buffer, size); } else if (shader_type == PIPE_SHADER_GEOMETRY) { draw->pt.user.gs_constants[slot] = buffer; draw_gs_set_constants(draw, slot, buffer, size); } }