trace: Add dump util functions for wrapped pointers

This commit is contained in:
Jakob Bornecrantz 2009-03-12 15:37:13 +01:00
parent 6aa6ae8cff
commit 53e5248b0a
2 changed files with 58 additions and 1 deletions

View file

@ -52,6 +52,8 @@
#include "tr_dump.h"
#include "tr_screen.h"
#include "tr_texture.h"
#include "tr_buffer.h"
static struct util_stream *stream = NULL;
@ -403,3 +405,49 @@ void trace_dump_ptr(const void *value)
else
trace_dump_null();
}
void trace_dump_buffer_ptr(struct pipe_buffer *_buffer)
{
if (_buffer) {
struct trace_screen *tr_scr = trace_screen(_buffer->screen);
struct trace_buffer *tr_buf = trace_buffer(tr_scr, _buffer);
trace_dump_ptr(tr_buf->buffer);
} else {
trace_dump_null();
}
}
void trace_dump_texture_ptr(struct pipe_texture *_texture)
{
if (_texture) {
struct trace_screen *tr_scr = trace_screen(_texture->screen);
struct trace_texture *tr_tex = trace_texture(tr_scr, _texture);
trace_dump_ptr(tr_tex->texture);
} else {
trace_dump_null();
}
}
void trace_dump_surface_ptr(struct pipe_surface *_surface)
{
if (_surface) {
struct trace_screen *tr_scr = trace_screen(_surface->texture->screen);
struct trace_texture *tr_tex = trace_texture(tr_scr, _surface->texture);
struct trace_surface *tr_surf = trace_surface(tr_tex, _surface);
trace_dump_ptr(tr_surf->surface);
} else {
trace_dump_null();
}
}
void trace_dump_transfer_ptr(struct pipe_transfer *_transfer)
{
if (_transfer) {
struct trace_screen *tr_scr = trace_screen(_transfer->texture->screen);
struct trace_texture *tr_tex = trace_texture(tr_scr, _transfer->texture);
struct trace_transfer *tr_tran = trace_transfer(tr_tex, _transfer);
trace_dump_ptr(tr_tran->transfer);
} else {
trace_dump_null();
}
}

View file

@ -37,6 +37,11 @@
#include "pipe/p_compiler.h"
struct pipe_buffer;
struct pipe_texture;
struct pipe_surface;
struct pipe_transfer;
boolean trace_dump_trace_begin(void);
boolean trace_dump_enabled(void);
void trace_dump_trace_end(void);
@ -63,7 +68,11 @@ void trace_dump_member_begin(const char *name);
void trace_dump_member_end(void);
void trace_dump_null(void);
void trace_dump_ptr(const void *value);
/* will turn a wrapped object into the real one and dump ptr */
void trace_dump_buffer_ptr(struct pipe_buffer *_buffer);
void trace_dump_texture_ptr(struct pipe_texture *_texture);
void trace_dump_surface_ptr(struct pipe_surface *_surface);
void trace_dump_transfer_ptr(struct pipe_transfer *_transfer);
/*
* Code saving macros.