Lines Matching refs:renderer
482 vl_mc_init(struct vl_mc *renderer, struct pipe_context *pipe,
489 assert(renderer);
492 memset(renderer, 0, sizeof(struct vl_mc));
494 renderer->pipe = pipe;
495 renderer->buffer_width = buffer_width;
496 renderer->buffer_height = buffer_height;
497 renderer->macroblock_size = macroblock_size;
499 if (!init_pipe_state(renderer))
502 renderer->vs_ref = create_ref_vert_shader(renderer);
503 if (!renderer->vs_ref)
506 renderer->vs_ycbcr = create_ycbcr_vert_shader(renderer, vs_callback, callback_priv);
507 if (!renderer->vs_ycbcr)
510 renderer->fs_ref = create_ref_frag_shader(renderer);
511 if (!renderer->fs_ref)
514 renderer->fs_ycbcr = create_ycbcr_frag_shader(renderer, scale, false, fs_callback, callback_priv);
515 if (!renderer->fs_ycbcr)
518 renderer->fs_ycbcr_sub = create_ycbcr_frag_shader(renderer, scale, true, fs_callback, callback_priv);
519 if (!renderer->fs_ycbcr_sub)
525 renderer->pipe->delete_fs_state(renderer->pipe, renderer->fs_ycbcr);
528 renderer->pipe->delete_fs_state(renderer->pipe, renderer->fs_ref);
531 renderer->pipe->delete_vs_state(renderer->pipe, renderer->vs_ycbcr);
534 renderer->pipe->delete_vs_state(renderer->pipe, renderer->vs_ref);
537 cleanup_pipe_state(renderer);
544 vl_mc_cleanup(struct vl_mc *renderer)
546 assert(renderer);
548 cleanup_pipe_state(renderer);
550 renderer->pipe->delete_vs_state(renderer->pipe, renderer->vs_ref);
551 renderer->pipe->delete_vs_state(renderer->pipe, renderer->vs_ycbcr);
552 renderer->pipe->delete_fs_state(renderer->pipe, renderer->fs_ref);
553 renderer->pipe->delete_fs_state(renderer->pipe, renderer->fs_ycbcr);
554 renderer->pipe->delete_fs_state(renderer->pipe, renderer->fs_ycbcr_sub);
558 vl_mc_init_buffer(struct vl_mc *renderer, struct vl_mc_buffer *buffer)
560 assert(renderer && buffer);
599 prepare_pipe_4_rendering(struct vl_mc *renderer, struct vl_mc_buffer *buffer, unsigned mask)
603 renderer->pipe->bind_rasterizer_state(renderer->pipe, renderer->rs_state);
606 renderer->pipe->bind_blend_state(renderer->pipe, renderer->blend_add[mask]);
608 renderer->pipe->bind_blend_state(renderer->pipe, renderer->blend_clear[mask]);
610 renderer->pipe->set_framebuffer_state(renderer->pipe, &buffer->fb_state);
611 renderer->pipe->set_viewport_states(renderer->pipe, 0, 1, &buffer->viewport);
615 vl_mc_render_ref(struct vl_mc *renderer, struct vl_mc_buffer *buffer, struct pipe_sampler_view *ref)
619 prepare_pipe_4_rendering(renderer, buffer, PIPE_MASK_R | PIPE_MASK_G | PIPE_MASK_B);
621 renderer->pipe->bind_vs_state(renderer->pipe, renderer->vs_ref);
622 renderer->pipe->bind_fs_state(renderer->pipe, renderer->fs_ref);
624 renderer->pipe->set_sampler_views(renderer->pipe, PIPE_SHADER_FRAGMENT,
626 renderer->pipe->bind_sampler_states(renderer->pipe, PIPE_SHADER_FRAGMENT,
627 0, 1, &renderer->sampler_ref);
629 util_draw_arrays_instanced(renderer->pipe, PIPE_PRIM_QUADS, 0, 4, 0,
630 renderer->buffer_width / VL_MACROBLOCK_WIDTH *
631 renderer->buffer_height / VL_MACROBLOCK_HEIGHT);
637 vl_mc_render_ycbcr(struct vl_mc *renderer, struct vl_mc_buffer *buffer, unsigned component, unsigned num_instances)
646 prepare_pipe_4_rendering(renderer, buffer, mask);
648 renderer->pipe->bind_vs_state(renderer->pipe, renderer->vs_ycbcr);
649 renderer->pipe->bind_fs_state(renderer->pipe, renderer->fs_ycbcr);
651 util_draw_arrays_instanced(renderer->pipe, PIPE_PRIM_QUADS, 0, 4, 0, num_instances);
654 renderer->pipe->bind_blend_state(renderer->pipe, renderer->blend_sub[mask]);
655 renderer->pipe->bind_fs_state(renderer->pipe, renderer->fs_ycbcr_sub);
656 util_draw_arrays_instanced(renderer->pipe, PIPE_PRIM_QUADS, 0, 4, 0, num_instances);