Lines Matching defs:zscan

120 create_vert_shader(struct vl_zscan *zscan)
134 o_vtex = MALLOC(zscan->num_channels * sizeof(struct ureg_dst));
137 (float)VL_BLOCK_WIDTH / zscan->buffer_width,
138 (float)VL_BLOCK_HEIGHT / zscan->buffer_height);
148 for (i = 0; i < zscan->num_channels; ++i)
168 ureg_imm1f(shader, 1.0f / zscan->blocks_per_line));
173 for (i = 0; i < zscan->num_channels; ++i) {
175 ureg_imm1f(shader, 1.0f / (zscan->blocks_per_line * VL_BLOCK_WIDTH)
176 * ((signed)i - (signed)zscan->num_channels / 2)));
179 ureg_imm1f(shader, 1.0f / zscan->blocks_per_line), ureg_src(tmp));
183 ureg_imm1f(shader, (float)zscan->blocks_per_line / zscan->blocks_total));
191 return ureg_create_shader_and_destroy(shader, zscan->pipe);
195 create_frag_shader(struct vl_zscan *zscan)
211 vtex = MALLOC(zscan->num_channels * sizeof(struct ureg_src));
212 tmp = MALLOC(zscan->num_channels * sizeof(struct ureg_dst));
214 for (i = 0; i < zscan->num_channels; ++i)
221 for (i = 0; i < zscan->num_channels; ++i)
232 for (i = 0; i < zscan->num_channels; ++i)
235 for (i = 0; i < zscan->num_channels; ++i)
238 for (i = 0; i < zscan->num_channels; ++i) {
246 for (i = 0; i < zscan->num_channels; ++i)
253 return ureg_create_shader_and_destroy(shader, zscan->pipe);
257 init_shaders(struct vl_zscan *zscan)
259 assert(zscan);
261 zscan->vs = create_vert_shader(zscan);
262 if (!zscan->vs)
265 zscan->fs = create_frag_shader(zscan);
266 if (!zscan->fs)
272 zscan->pipe->delete_vs_state(zscan->pipe, zscan->vs);
279 cleanup_shaders(struct vl_zscan *zscan)
281 assert(zscan);
283 zscan->pipe->delete_vs_state(zscan->pipe, zscan->vs);
284 zscan->pipe->delete_fs_state(zscan->pipe, zscan->fs);
288 init_state(struct vl_zscan *zscan)
295 assert(zscan);
303 zscan->rs_state = zscan->pipe->create_rasterizer_state(zscan->pipe, &rs_state);
304 if (!zscan->rs_state)
322 zscan->blend = zscan->pipe->create_blend_state(zscan->pipe, &blend);
323 if (!zscan->blend)
337 zscan->samplers[i] = zscan->pipe->create_sampler_state(zscan->pipe, &sampler);
338 if (!zscan->samplers[i])
346 if (zscan->samplers[i])
347 zscan->pipe->delete_sampler_state(zscan->pipe, zscan->samplers[i]);
349 zscan->pipe->delete_rasterizer_state(zscan->pipe, zscan->rs_state);
352 zscan->pipe->delete_blend_state(zscan->pipe, zscan->blend);
359 cleanup_state(struct vl_zscan *zscan)
363 assert(zscan);
366 zscan->pipe->delete_sampler_state(zscan->pipe, zscan->samplers[i]);
368 zscan->pipe->delete_rasterizer_state(zscan->pipe, zscan->rs_state);
369 zscan->pipe->delete_blend_state(zscan->pipe, zscan->blend);
450 vl_zscan_init(struct vl_zscan *zscan, struct pipe_context *pipe,
455 assert(zscan && pipe);
457 zscan->pipe = pipe;
458 zscan->buffer_width = buffer_width;
459 zscan->buffer_height = buffer_height;
460 zscan->num_channels = num_channels;
461 zscan->blocks_per_line = blocks_per_line;
462 zscan->blocks_total = blocks_total;
464 if(!init_shaders(zscan))
467 if(!init_state(zscan)) {
468 cleanup_shaders(zscan);
476 vl_zscan_cleanup(struct vl_zscan *zscan)
478 assert(zscan);
480 cleanup_shaders(zscan);
481 cleanup_state(zscan);
485 vl_zscan_init_buffer(struct vl_zscan *zscan, struct vl_zscan_buffer *buffer,
491 assert(zscan && buffer);
516 res_tmpl.width0 = VL_BLOCK_WIDTH * zscan->blocks_per_line;
523 res = zscan->pipe->screen->resource_create(zscan->pipe->screen, &res_tmpl);
530 buffer->quant = zscan->pipe->create_sampler_view(zscan->pipe, res, &sv_tmpl);
559 vl_zscan_upload_quant(struct vl_zscan *zscan, struct vl_zscan_buffer *buffer,
578 pipe = zscan->pipe;
580 rect.width *= zscan->blocks_per_line;
591 for (i = 0; i < zscan->blocks_per_line; ++i)
600 vl_zscan_render(struct vl_zscan *zscan, struct vl_zscan_buffer *buffer, unsigned num_instances)
604 zscan->pipe->bind_rasterizer_state(zscan->pipe, zscan->rs_state);
605 zscan->pipe->bind_blend_state(zscan->pipe, zscan->blend);
606 zscan->pipe->bind_sampler_states(zscan->pipe, PIPE_SHADER_FRAGMENT,
607 0, 3, zscan->samplers);
608 zscan->pipe->set_framebuffer_state(zscan->pipe, &buffer->fb_state);
609 zscan->pipe->set_viewport_states(zscan->pipe, 0, 1, &buffer->viewport);
610 zscan->pipe->set_sampler_views(zscan->pipe, PIPE_SHADER_FRAGMENT,
612 zscan->pipe->bind_vs_state(zscan->pipe, zscan->vs);
613 zscan->pipe->bind_fs_state(zscan->pipe, zscan->fs);
614 util_draw_arrays_instanced(zscan->pipe, PIPE_PRIM_QUADS, 0, 4, 0, num_instances);