static struct pipe_sampler_view *
-trace_create_sampler_view(struct pipe_context *_pipe,
+trace_context_create_sampler_view(struct pipe_context *_pipe,
struct pipe_resource *_resource,
const struct pipe_sampler_view *templ)
{
static void
-trace_sampler_view_destroy(struct pipe_context *_pipe,
+trace_context_sampler_view_destroy(struct pipe_context *_pipe,
struct pipe_sampler_view *_view)
{
struct trace_context *tr_ctx = trace_context(_pipe);
static struct pipe_surface *
-trace_create_surface(struct pipe_context *_pipe,
- struct pipe_resource *_resource,
- const struct pipe_surface *surf_tmpl)
+trace_context_create_surface(struct pipe_context *_pipe,
+ struct pipe_resource *_resource,
+ const struct pipe_surface *surf_tmpl)
{
struct trace_context *tr_ctx = trace_context(_pipe);
struct trace_resource *tr_res = trace_resource(_resource);
static void
-trace_surface_destroy(struct pipe_context *_pipe,
- struct pipe_surface *_surface)
+trace_context_surface_destroy(struct pipe_context *_pipe,
+ struct pipe_surface *_surface)
{
struct trace_context *tr_ctx = trace_context(_pipe);
struct pipe_context *pipe = tr_ctx->pipe;
}
-static void trace_render_condition(struct pipe_context *_context,
- struct pipe_query *query,
- uint mode)
+static void trace_context_render_condition(struct pipe_context *_context,
+ struct pipe_query *query,
+ uint mode)
{
struct trace_context *tr_context = trace_context(_context);
struct pipe_context *context = tr_context->pipe;
}
-static void trace_texture_barrier(struct pipe_context *_context)
+static void trace_context_texture_barrier(struct pipe_context *_context)
{
struct trace_context *tr_context = trace_context(_context);
struct pipe_context *context = tr_context->pipe;
tr_ctx->base.screen = &tr_scr->base;
tr_ctx->base.destroy = trace_context_destroy;
- tr_ctx->base.draw_vbo = trace_context_draw_vbo;
- tr_ctx->base.create_query = trace_context_create_query;
- tr_ctx->base.destroy_query = trace_context_destroy_query;
- tr_ctx->base.begin_query = trace_context_begin_query;
- tr_ctx->base.end_query = trace_context_end_query;
- tr_ctx->base.get_query_result = trace_context_get_query_result;
- tr_ctx->base.create_blend_state = trace_context_create_blend_state;
- tr_ctx->base.bind_blend_state = trace_context_bind_blend_state;
- tr_ctx->base.delete_blend_state = trace_context_delete_blend_state;
- tr_ctx->base.create_sampler_state = trace_context_create_sampler_state;
- tr_ctx->base.bind_fragment_sampler_states = trace_context_bind_fragment_sampler_states;
- tr_ctx->base.bind_vertex_sampler_states = trace_context_bind_vertex_sampler_states;
- tr_ctx->base.delete_sampler_state = trace_context_delete_sampler_state;
- tr_ctx->base.create_rasterizer_state = trace_context_create_rasterizer_state;
- tr_ctx->base.bind_rasterizer_state = trace_context_bind_rasterizer_state;
- tr_ctx->base.delete_rasterizer_state = trace_context_delete_rasterizer_state;
- tr_ctx->base.create_depth_stencil_alpha_state = trace_context_create_depth_stencil_alpha_state;
- tr_ctx->base.bind_depth_stencil_alpha_state = trace_context_bind_depth_stencil_alpha_state;
- tr_ctx->base.delete_depth_stencil_alpha_state = trace_context_delete_depth_stencil_alpha_state;
- tr_ctx->base.create_fs_state = trace_context_create_fs_state;
- tr_ctx->base.bind_fs_state = trace_context_bind_fs_state;
- tr_ctx->base.delete_fs_state = trace_context_delete_fs_state;
- tr_ctx->base.create_vs_state = trace_context_create_vs_state;
- tr_ctx->base.bind_vs_state = trace_context_bind_vs_state;
- tr_ctx->base.delete_vs_state = trace_context_delete_vs_state;
- tr_ctx->base.create_vertex_elements_state = trace_context_create_vertex_elements_state;
- tr_ctx->base.bind_vertex_elements_state = trace_context_bind_vertex_elements_state;
- tr_ctx->base.delete_vertex_elements_state = trace_context_delete_vertex_elements_state;
- tr_ctx->base.set_blend_color = trace_context_set_blend_color;
- tr_ctx->base.set_stencil_ref = trace_context_set_stencil_ref;
- tr_ctx->base.set_clip_state = trace_context_set_clip_state;
- tr_ctx->base.set_sample_mask = trace_context_set_sample_mask;
- tr_ctx->base.set_constant_buffer = trace_context_set_constant_buffer;
- tr_ctx->base.set_framebuffer_state = trace_context_set_framebuffer_state;
- tr_ctx->base.set_polygon_stipple = trace_context_set_polygon_stipple;
- tr_ctx->base.set_scissor_state = trace_context_set_scissor_state;
- tr_ctx->base.set_viewport_state = trace_context_set_viewport_state;
- tr_ctx->base.set_fragment_sampler_views = trace_context_set_fragment_sampler_views;
- tr_ctx->base.set_vertex_sampler_views = trace_context_set_vertex_sampler_views;
- tr_ctx->base.create_sampler_view = trace_create_sampler_view;
- tr_ctx->base.sampler_view_destroy = trace_sampler_view_destroy;
- tr_ctx->base.create_surface = trace_create_surface;
- tr_ctx->base.surface_destroy = trace_surface_destroy;
- tr_ctx->base.set_vertex_buffers = trace_context_set_vertex_buffers;
- tr_ctx->base.set_index_buffer = trace_context_set_index_buffer;
- tr_ctx->base.create_stream_output_target = trace_context_create_stream_output_target;
- tr_ctx->base.stream_output_target_destroy = trace_context_stream_output_target_destroy;
- tr_ctx->base.set_stream_output_targets = trace_context_set_stream_output_targets;
- tr_ctx->base.resource_copy_region = trace_context_resource_copy_region;
- tr_ctx->base.clear = trace_context_clear;
- tr_ctx->base.clear_render_target = trace_context_clear_render_target;
- tr_ctx->base.clear_depth_stencil = trace_context_clear_depth_stencil;
- tr_ctx->base.flush = trace_context_flush;
- tr_ctx->base.render_condition = pipe->render_condition ? trace_render_condition : NULL;
- tr_ctx->base.texture_barrier = pipe->texture_barrier ? trace_texture_barrier : NULL;
-
- tr_ctx->base.get_transfer = trace_context_get_transfer;
- tr_ctx->base.transfer_destroy = trace_context_transfer_destroy;
- tr_ctx->base.transfer_map = trace_context_transfer_map;
- tr_ctx->base.transfer_unmap = trace_context_transfer_unmap;
- tr_ctx->base.transfer_flush_region = trace_context_transfer_flush_region;
- tr_ctx->base.transfer_inline_write = trace_context_transfer_inline_write;
+
+#define TR_CTX_INIT(_member) \
+ tr_ctx->base . _member = pipe -> _member ? trace_context_ ## _member : NULL
+
+ TR_CTX_INIT(draw_vbo);
+ TR_CTX_INIT(create_query);
+ TR_CTX_INIT(destroy_query);
+ TR_CTX_INIT(begin_query);
+ TR_CTX_INIT(end_query);
+ TR_CTX_INIT(get_query_result);
+ TR_CTX_INIT(create_blend_state);
+ TR_CTX_INIT(bind_blend_state);
+ TR_CTX_INIT(delete_blend_state);
+ TR_CTX_INIT(create_sampler_state);
+ TR_CTX_INIT(bind_fragment_sampler_states);
+ TR_CTX_INIT(bind_vertex_sampler_states);
+ TR_CTX_INIT(delete_sampler_state);
+ TR_CTX_INIT(create_rasterizer_state);
+ TR_CTX_INIT(bind_rasterizer_state);
+ TR_CTX_INIT(delete_rasterizer_state);
+ TR_CTX_INIT(create_depth_stencil_alpha_state);
+ TR_CTX_INIT(bind_depth_stencil_alpha_state);
+ TR_CTX_INIT(delete_depth_stencil_alpha_state);
+ TR_CTX_INIT(create_fs_state);
+ TR_CTX_INIT(bind_fs_state);
+ TR_CTX_INIT(delete_fs_state);
+ TR_CTX_INIT(create_vs_state);
+ TR_CTX_INIT(bind_vs_state);
+ TR_CTX_INIT(delete_vs_state);
+ TR_CTX_INIT(create_vertex_elements_state);
+ TR_CTX_INIT(bind_vertex_elements_state);
+ TR_CTX_INIT(delete_vertex_elements_state);
+ TR_CTX_INIT(set_blend_color);
+ TR_CTX_INIT(set_stencil_ref);
+ TR_CTX_INIT(set_clip_state);
+ TR_CTX_INIT(set_sample_mask);
+ TR_CTX_INIT(set_constant_buffer);
+ TR_CTX_INIT(set_framebuffer_state);
+ TR_CTX_INIT(set_polygon_stipple);
+ TR_CTX_INIT(set_scissor_state);
+ TR_CTX_INIT(set_viewport_state);
+ TR_CTX_INIT(set_fragment_sampler_views);
+ TR_CTX_INIT(set_vertex_sampler_views);
+ TR_CTX_INIT(create_sampler_view);
+ TR_CTX_INIT(sampler_view_destroy);
+ TR_CTX_INIT(create_surface);
+ TR_CTX_INIT(surface_destroy);
+ TR_CTX_INIT(set_vertex_buffers);
+ TR_CTX_INIT(set_index_buffer);
+ TR_CTX_INIT(create_stream_output_target);
+ TR_CTX_INIT(stream_output_target_destroy);
+ TR_CTX_INIT(set_stream_output_targets);
+ TR_CTX_INIT(resource_copy_region);
+ TR_CTX_INIT(clear);
+ TR_CTX_INIT(clear_render_target);
+ TR_CTX_INIT(clear_depth_stencil);
+ TR_CTX_INIT(flush);
+ TR_CTX_INIT(render_condition);
+ TR_CTX_INIT(texture_barrier);
+
+ TR_CTX_INIT(get_transfer);
+ TR_CTX_INIT(transfer_destroy);
+ TR_CTX_INIT(transfer_map);
+ TR_CTX_INIT(transfer_unmap);
+ TR_CTX_INIT(transfer_flush_region);
+ TR_CTX_INIT(transfer_inline_write);
+
+#undef TR_CTX_INIT
tr_ctx->pipe = pipe;