Home | History | Annotate | Download | only in draw

Lines Matching refs:aaline

350 generate_aaline_fs(struct aaline_stage *aaline)
352 struct pipe_context *pipe = aaline->stage.draw->pipe;
353 const struct pipe_shader_state *orig_fs = &aaline->fs->state;
384 aaline->fs->sampler_unit = transform.freeSampler;
386 aaline->fs->aaline_fs = aaline->driver_create_fs_state(pipe, &aaline_fs);
387 if (aaline->fs->aaline_fs == NULL)
390 aaline->fs->generic_attrib = transform.maxGeneric + 1;
404 aaline_create_texture(struct aaline_stage *aaline)
406 struct pipe_context *pipe = aaline->stage.draw->pipe;
422 aaline->texture = screen->resource_create(screen, &texTemp);
423 if (!aaline->texture)
427 aaline->texture,
428 aaline->texture->format);
429 aaline->sampler_view = pipe->create_sampler_view(pipe,
430 aaline->texture,
432 if (!aaline->sampler_view) {
444 const uint size = u_minify(aaline->texture->width0, level);
448 assert(aaline->texture->width0 == aaline->texture->height0);
455 aaline->texture,
497 aaline_create_sampler(struct aaline_stage *aaline)
500 struct pipe_context *pipe = aaline->stage.draw->pipe;
513 aaline
514 if (aaline->sampler_cso == NULL)
526 bind_aaline_fragment_shader(struct aaline_stage *aaline)
528 struct draw_context *draw = aaline->stage.draw;
531 if (!aaline->fs->aaline_fs &&
532 !generate_aaline_fs(aaline))
536 aaline->driver_bind_fs_state(pipe, aaline->fs->aaline_fs);
558 const struct aaline_stage *aaline = aaline_stage(stage);
559 const float half_width = aaline->half_line_width;
562 uint texPos = aaline->tex_slot;
563 uint posPos = aaline->pos_slot;
674 auto struct aaline_stage *aaline = aaline_stage(stage);
684 aaline->half_line_width = 1.1f;
686 aaline->half_line_width = 0.5f * draw->rasterizer->line_width;
691 if (!bind_aaline_fragment_shader(aaline)) {
698 aaline->pos_slot = draw_current_shader_position_output(draw);;
701 aaline->tex_slot = draw_alloc_extra_vertex_attrib(draw,
703 aaline->fs->generic_attrib);
707 num_samplers = MAX2(aaline->num_sampler_views, aaline->num_samplers);
708 num_samplers = MAX2(num_samplers, aaline->fs->sampler_unit + 1);
710 aaline->state.sampler[aaline->fs->sampler_unit] = aaline->sampler_cso;
711 pipe_sampler_view_reference(&aaline->state.sampler_views[aaline->fs->sampler_unit],
712 aaline->sampler_view);
715 aaline->driver_bind_sampler_states(pipe, num_samplers, aaline->state.sampler);
716 aaline->driver_set_sampler_views(pipe, num_samplers, aaline->state.sampler_views);
734 struct aaline_stage *aaline = aaline_stage(stage);
742 aaline->driver_bind_fs_state(pipe, aaline->fs ? aaline->fs->driver_fs : NULL);
743 aaline->driver_bind_sampler_states(pipe, aaline->num_samplers,
744 aaline->state.sampler);
745 aaline->driver_set_sampler_views(pipe,
746 aaline->num_sampler_views,
747 aaline->state.sampler_views);
770 struct aaline_stage *aaline = aaline_stage(stage);
775 pipe_sampler_view_reference(&aaline->state.sampler_views[i], NULL);
778 if (aaline->sampler_cso)
779 pipe->delete_sampler_state(pipe, aaline->sampler_cso);
781 if (aaline->texture)
782 pipe_resource_reference(&aaline->texture, NULL);
784 if (aaline->sampler_view) {
785 pipe_sampler_view_reference(&aaline->sampler_view, NULL);
791 pipe->create_fs_state = aaline->driver_create_fs_state;
792 pipe->bind_fs_state = aaline->driver_bind_fs_state;
793 pipe->delete_fs_state = aaline->driver_delete_fs_state;
795 pipe->bind_fragment_sampler_states = aaline->driver_bind_sampler_states;
796 pipe->set_fragment_sampler_views = aaline->driver_set_sampler_views;
805 struct aaline_stage *aaline = CALLOC_STRUCT(aaline_stage);
806 if (aaline == NULL)
809 aaline->stage.draw = draw;
810 aaline->stage.name = "aaline";
811 aaline->stage.next = NULL;
812 aaline->stage.point = draw_pipe_passthrough_point;
813 aaline->stage.line = aaline_first_line;
814 aaline->stage.tri = draw_pipe_passthrough_tri;
815 aaline->stage.flush = aaline_flush;
816 aaline->stage.reset_stipple_counter = aaline_reset_stipple_counter;
817 aaline->stage.destroy = aaline_destroy;
819 if (!draw_alloc_temp_verts( &aaline->stage, 8 ))
822 return aaline;
825 if (aaline)
826 aaline->stage.destroy(&aaline->stage);
836 return aaline_stage(draw->pipeline.aaline);
848 struct aaline_stage *aaline = aaline_stage_from_pipe(pipe);
857 aafs->driver_fs = aaline->driver_create_fs_state(pipe, fs);
866 struct aaline_stage *aaline = aaline_stage_from_pipe(pipe);
870 aaline->fs = aafs;
872 aaline->driver_bind_fs_state(pipe, (aafs ? aafs->driver_fs : NULL));
879 struct aaline_stage *aaline = aaline_stage_from_pipe(pipe);
883 aaline->driver_delete_fs_state(pipe, aafs->driver_fs);
886 aaline->driver_delete_fs_state(pipe, aafs->aaline_fs);
898 struct aaline_stage *aaline = aaline_stage_from_pipe(pipe);
901 memcpy(aaline->state.sampler, sampler, num * sizeof(void *));
902 aaline->num_samplers = num;
905 aaline->driver_bind_sampler_states(pipe, num, sampler);
914 struct aaline_stage *aaline = aaline_stage_from_pipe(pipe);
919 pipe_sampler_view_reference(&aaline->state.sampler_views[i], views[i]);
922 pipe_sampler_view_reference(&aaline->state.sampler_views[i], NULL);
924 aaline->num_sampler_views = num;
927 aaline->driver_set_sampler_views(pipe, num, views);
939 struct aaline_stage *aaline;
946 aaline = draw_aaline_stage( draw );
947 if (!aaline)
951 if (!aaline_create_texture(aaline))
954 if (!aaline_create_sampler(aaline))
958 aaline->driver_create_fs_state = pipe->create_fs_state;
959 aaline->driver_bind_fs_state = pipe->bind_fs_state;
960 aaline->driver_delete_fs_state = pipe->delete_fs_state;
962 aaline->driver_bind_sampler_states = pipe->bind_fragment_sampler_states;
963 aaline->driver_set_sampler_views = pipe->set_fragment_sampler_views;
975 draw->pipeline.aaline = &aaline->stage;
980 if (aaline)
981 aaline->stage.destroy( &aaline->stage );