pipe_buffer_write(renderer->pipe, cbuf,
0, sizeof(consts), consts);
}
- renderer->pipe->set_constant_buffer(renderer->pipe,
+ pipe_set_constant_buffer(renderer->pipe,
PIPE_SHADER_VERTEX, 0, cbuf);
memcpy(cur, mvp, sizeof(*mvp));
switch (id) {
case RENDERER_FS_COLOR:
- fs = util_make_fragment_passthrough_shader(r->pipe);
+ fs = util_make_fragment_passthrough_shader(r->pipe,
+ TGSI_SEMANTIC_COLOR, TGSI_INTERPOLATE_PERSPECTIVE);
break;
case RENDERER_FS_TEXTURE:
fs = util_make_fragment_tex_shader(r->pipe,
/* set samplers */
for (i = 0; i < num_views; i++)
- cso_single_sampler(r->cso, i, &sampler);
- cso_single_sampler_done(r->cso);
+ cso_single_sampler(r->cso, PIPE_SHADER_FRAGMENT, i, &sampler);
+ cso_single_sampler_done(r->cso, PIPE_SHADER_FRAGMENT);
/* set views */
- cso_set_fragment_sampler_views(r->cso, num_views, views);
+ cso_set_sampler_views(r->cso, PIPE_SHADER_FRAGMENT, num_views, views);
}
/**
/* set samplers and views */
if (num_samplers) {
- cso_set_samplers(renderer->cso, num_samplers, samplers);
- cso_set_fragment_sampler_views(renderer->cso, num_samplers, views);
+ cso_set_samplers(renderer->cso, PIPE_SHADER_FRAGMENT, num_samplers, samplers);
+ cso_set_sampler_views(renderer->cso, PIPE_SHADER_FRAGMENT, num_samplers, views);
}
/* upload fs constant buffer */
const_buffer_len);
pipe_buffer_write(renderer->pipe, cbuf, 0,
const_buffer_len, const_buffer);
- renderer->pipe->set_constant_buffer(renderer->pipe,
+ pipe_set_constant_buffer(renderer->pipe,
PIPE_SHADER_FRAGMENT, 0, cbuf);
renderer->fs_cbuf = cbuf;
*/
static void renderer_quad_draw(struct renderer *r)
{
- struct pipe_resource *buf;
-
- buf = pipe_user_buffer_create(r->pipe->screen,
- r->vertices,
- sizeof(r->vertices),
- PIPE_BIND_VERTEX_BUFFER);
- if (buf) {
- util_draw_vertex_buffer(r->pipe, r->cso, buf, 0,
- PIPE_PRIM_TRIANGLE_FAN,
- Elements(r->vertices), /* verts */
- Elements(r->vertices[0])); /* attribs/vert */
-
- pipe_resource_reference(&buf, NULL);
- }
+ util_draw_user_vertex_buffer(r->cso, r->vertices, PIPE_PRIM_TRIANGLE_FAN,
+ Elements(r->vertices), /* verts */
+ Elements(r->vertices[0])); /* attribs/vert */
}
/**
cso_save_framebuffer(renderer->cso);
cso_save_viewport(renderer->cso);
cso_save_blend(renderer->cso);
- cso_save_samplers(renderer->cso);
- cso_save_fragment_sampler_views(renderer->cso);
+ cso_save_samplers(renderer->cso, PIPE_SHADER_FRAGMENT);
+ cso_save_sampler_views(renderer->cso, PIPE_SHADER_FRAGMENT);
cso_save_fragment_shader(renderer->cso);
cso_save_vertex_shader(renderer->cso);
cso_restore_framebuffer(renderer->cso);
cso_restore_viewport(renderer->cso);
cso_restore_blend(renderer->cso);
- cso_restore_samplers(renderer->cso);
- cso_restore_fragment_sampler_views(renderer->cso);
+ cso_restore_samplers(renderer->cso, PIPE_SHADER_FRAGMENT);
+ cso_restore_sampler_views(renderer->cso, PIPE_SHADER_FRAGMENT);
cso_restore_fragment_shader(renderer->cso);
cso_restore_vertex_shader(renderer->cso);
return VG_FALSE;
cso_save_blend(renderer->cso);
- cso_save_samplers(renderer->cso);
- cso_save_fragment_sampler_views(renderer->cso);
+ cso_save_samplers(renderer->cso, PIPE_SHADER_FRAGMENT);
+ cso_save_sampler_views(renderer->cso, PIPE_SHADER_FRAGMENT);
cso_save_fragment_shader(renderer->cso);
cso_save_vertex_shader(renderer->cso);
assert(renderer->state == RENDERER_STATE_DRAWTEX);
cso_restore_blend(renderer->cso);
- cso_restore_samplers(renderer->cso);
- cso_restore_fragment_sampler_views(renderer->cso);
+ cso_restore_samplers(renderer->cso, PIPE_SHADER_FRAGMENT);
+ cso_restore_sampler_views(renderer->cso, PIPE_SHADER_FRAGMENT);
cso_restore_fragment_shader(renderer->cso);
cso_restore_vertex_shader(renderer->cso);
if (!renderer_can_support(renderer, dst, PIPE_BIND_RENDER_TARGET))
return VG_FALSE;
- u_surface_default_template(&surf_tmpl, dst,
- PIPE_BIND_RENDER_TARGET);
+ u_surface_default_template(&surf_tmpl, dst);
surf = renderer->pipe->create_surface(renderer->pipe, dst, &surf_tmpl);
if (!surf)
return VG_FALSE;
if (num_samplers) {
struct pipe_resource *tex;
- cso_save_samplers(renderer->cso);
- cso_save_fragment_sampler_views(renderer->cso);
+ cso_save_samplers(renderer->cso, PIPE_SHADER_FRAGMENT);
+ cso_save_sampler_views(renderer->cso, PIPE_SHADER_FRAGMENT);
cso_save_fragment_shader(renderer->cso);
cso_save_vertex_shader(renderer->cso);
assert(renderer->state == RENDERER_STATE_FILTER);
if (renderer->u.filter.use_sampler) {
- cso_restore_samplers(renderer->cso);
- cso_restore_fragment_sampler_views(renderer->cso);
+ cso_restore_samplers(renderer->cso, PIPE_SHADER_FRAGMENT);
+ cso_restore_sampler_views(renderer->cso, PIPE_SHADER_FRAGMENT);
cso_restore_vertex_shader(renderer->cso);
}
{
assert(renderer->state == RENDERER_STATE_POLYGON_STENCIL);
- cso_set_vertex_buffers(renderer->cso, 1, vbuf);
+ cso_set_vertex_buffers(renderer->cso, 0, 1, vbuf);
if (!renderer->u.polygon_stencil.manual_two_sides) {
- util_draw_arrays(renderer->pipe, mode, start, count);
+ cso_draw_arrays(renderer->cso, mode, start, count);
}
else {
struct pipe_rasterizer_state raster;
cso_set_rasterizer(renderer->cso, &raster);
cso_set_depth_stencil_alpha(renderer->cso, &dsa);
- util_draw_arrays(renderer->pipe, mode, start, count);
+ cso_draw_arrays(renderer->cso, mode, start, count);
/* back */
raster.cull_face = PIPE_FACE_FRONT;
cso_set_rasterizer(renderer->cso, &raster);
cso_set_depth_stencil_alpha(renderer->cso, &dsa);
- util_draw_arrays(renderer->pipe, mode, start, count);
+ cso_draw_arrays(renderer->cso, mode, start, count);
}
}
/* GL rasterization rules */
raster = &renderer->g3d.rasterizer;
memset(raster, 0, sizeof(*raster));
- raster->gl_rasterization_rules = 1;
+ raster->half_pixel_center = 1;
+ raster->bottom_edge_rule = 1;
raster->depth_clip = 1;
cso_set_rasterizer(renderer->cso, raster);