/**************************************************************************
*
- * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * Copyright 2008 VMware, Inc.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#endif
+struct trace_screen;
+
struct trace_context
{
struct pipe_context base;
struct pipe_context *pipe;
-
- /* current state */
- struct {
- struct trace_shader *fs;
- struct trace_shader *vs;
-
- struct trace_texture *tex[PIPE_MAX_SAMPLERS];
- unsigned num_texs;
-
- unsigned nr_cbufs;
- struct trace_texture *cbufs[PIPE_MAX_COLOR_BUFS];
- struct trace_texture *zsbuf;
- } curr;
-
- struct {
- struct trace_shader *fs;
- struct trace_shader *vs;
-
- struct trace_texture *tex;
- struct trace_texture *surf;
-
- int blocker;
- } draw_rule;
- unsigned draw_num_rules;
- pipe_condvar draw_cond;
- pipe_mutex draw_mutex;
- int draw_blocker;
- int draw_blocked;
-
- /* for list on screen */
- struct tr_list list;
-
- /* list of state objects */
- pipe_mutex list_mutex;
- unsigned num_shaders;
- struct tr_list shaders;
};
-static INLINE struct trace_context *
+void
+trace_context_check(const struct pipe_context *pipe);
+
+
+static inline struct trace_context *
trace_context(struct pipe_context *pipe)
{
assert(pipe);
+#ifdef DEBUG
+ trace_context_check(pipe);
+#endif
return (struct trace_context *)pipe;
}
-
struct pipe_context *
-trace_context_create(struct pipe_screen *screen,
+trace_context_create(struct trace_screen *tr_scr,
struct pipe_context *pipe);
-void
-trace_rbug_notify_draw_blocked(struct trace_context *tr_ctx);
-
#ifdef __cplusplus
}