Merge branch 'mesa_7_6_branch'
[mesa.git] / src / gallium / auxiliary / draw / draw_private.h
index 626a2e3e30471ff794c2eceece17eb6cd4c09264..41fcb16a0a5a1df71c3de27bbafaec358fd5b61c 100644 (file)
@@ -44,7 +44,6 @@
 #include "pipe/p_state.h"
 #include "pipe/p_defines.h"
 
-#include "tgsi/tgsi_exec.h"
 #include "tgsi/tgsi_scan.h"
 
 
@@ -55,6 +54,8 @@ struct draw_vertex_shader;
 struct draw_context;
 struct draw_stage;
 struct vbuf_render;
+struct tgsi_exec_machine;
+struct tgsi_sampler;
 
 
 /**
@@ -163,12 +164,17 @@ struct draw_context
 
    struct {
       boolean bypass_clipping;
+      boolean bypass_vs;
    } driver;
 
    boolean flushing;         /**< debugging/sanity */
    boolean suspend_flushing; /**< internally set */
    boolean bypass_clipping;  /**< set if either api or driver bypass_clipping true */
 
+   boolean force_passthrough; /**< never clip or shade */
+
+   double mrd;  /**< minimum resolvable depth value, for polygon offset */
+
    /* pipe state that we need: */
    const struct pipe_rasterizer_state *rasterizer;
    struct pipe_viewport_state viewport;
@@ -180,7 +186,10 @@ struct draw_context
       uint position_output;
 
       /** TGSI program interpreter runtime state */
-      struct tgsi_exec_machine machine;
+      struct tgsi_exec_machine *machine;
+
+      uint num_samplers;
+      struct tgsi_sampler **samplers;
 
       /* This (and the tgsi_exec_machine struct) probably need to be moved somewhere private.
        */
@@ -193,7 +202,7 @@ struct draw_context
 
       const float (*aligned_constants)[4];
 
-      float (*aligned_constant_storage)[4];
+      const float (*aligned_constant_storage)[4];
       unsigned const_storage_size;