Merge branch '7.8' into master
[mesa.git] / src / mesa / state_tracker / st_cb_feedback.c
index 31744151f1d84759249e1d7c6527fd65b198148e..37b1fb55f4a0bf255aa6c6c5cf3bdc39b9afc51c 100644 (file)
 #include "main/imports.h"
 #include "main/context.h"
 #include "main/feedback.h"
-#include "main/macros.h"
 
 #include "vbo/vbo.h"
 
 #include "st_context.h"
-#include "st_atom.h"
 #include "st_draw.h"
 #include "st_cb_feedback.h"
-#include "st_cb_bufferobjects.h"
 
 #include "pipe/p_context.h"
 #include "pipe/p_defines.h"
-#include "pipe/p_winsys.h"
-#include "pipe/cso_cache/cso_cache.h"
 
-#include "pipe/draw/draw_context.h"
-#include "pipe/draw/draw_private.h"
+#include "draw/draw_context.h"
+#include "draw/draw_pipe.h"
 
 
 /**
@@ -88,7 +83,6 @@ feedback_vertex(GLcontext *ctx, const struct draw_context *draw,
    const struct st_context *st = ctx->st;
    GLfloat win[4];
    const GLfloat *color, *texcoord;
-   const GLfloat ci = 0;
    GLuint slot;
 
    /* Recall that Y=0=Top of window for Gallium wincoords */
@@ -114,7 +108,7 @@ feedback_vertex(GLcontext *ctx, const struct draw_context *draw,
    else
       texcoord = ctx->Current.Attrib[VERT_ATTRIB_TEX0];
 
-   _mesa_feedback_vertex(ctx, win, color, ci, texcoord);
+   _mesa_feedback_vertex(ctx, win, color, texcoord);
 }
 
 
@@ -123,8 +117,8 @@ feedback_tri( struct draw_stage *stage, struct prim_header *prim )
 {
    struct feedback_stage *fs = feedback_stage(stage);
    struct draw_context *draw = stage->draw;
-   FEEDBACK_TOKEN(fs->ctx, (GLfloat) GL_POLYGON_TOKEN);
-   FEEDBACK_TOKEN(fs->ctx, (GLfloat) 3); /* three vertices */
+   _mesa_feedback_token(fs->ctx, (GLfloat) GL_POLYGON_TOKEN);
+   _mesa_feedback_token(fs->ctx, (GLfloat) 3); /* three vertices */
    feedback_vertex(fs->ctx, draw, prim->v[0]);
    feedback_vertex(fs->ctx, draw, prim->v[1]);
    feedback_vertex(fs->ctx, draw, prim->v[2]);
@@ -137,11 +131,11 @@ feedback_line( struct draw_stage *stage, struct prim_header *prim )
    struct feedback_stage *fs = feedback_stage(stage);
    struct draw_context *draw = stage->draw;
    if (fs->reset_stipple_counter) {
-      FEEDBACK_TOKEN(fs->ctx, (GLfloat) GL_LINE_RESET_TOKEN);
+      _mesa_feedback_token(fs->ctx, (GLfloat) GL_LINE_RESET_TOKEN);
       fs->reset_stipple_counter = GL_FALSE;
    }
    else {
-      FEEDBACK_TOKEN(fs->ctx, (GLfloat) GL_LINE_TOKEN);
+      _mesa_feedback_token(fs->ctx, (GLfloat) GL_LINE_TOKEN);
    }
    feedback_vertex(fs->ctx, draw, prim->v[0]);
    feedback_vertex(fs->ctx, draw, prim->v[1]);
@@ -153,7 +147,7 @@ feedback_point( struct draw_stage *stage, struct prim_header *prim )
 {
    struct feedback_stage *fs = feedback_stage(stage);
    struct draw_context *draw = stage->draw;
-   FEEDBACK_TOKEN(fs->ctx, (GLfloat) GL_POINT_TOKEN);
+   _mesa_feedback_token(fs->ctx, (GLfloat) GL_POINT_TOKEN);
    feedback_vertex(fs->ctx, draw, prim->v[0]);
 }
 
@@ -173,13 +167,19 @@ feedback_reset_stipple_counter( struct draw_stage *stage )
 }
 
 
+static void
+feedback_destroy( struct draw_stage *stage )
+{
+   /* no-op */
+}
+
 /**
  * Create GL feedback drawing stage.
  */
 static struct draw_stage *
 draw_glfeedback_stage(GLcontext *ctx, struct draw_context *draw)
 {
-   struct feedback_stage *fs = CALLOC_STRUCT(feedback_stage);
+   struct feedback_stage *fs = ST_CALLOC_STRUCT(feedback_stage);
 
    fs->stage.draw = draw;
    fs->stage.next = NULL;
@@ -188,6 +188,7 @@ draw_glfeedback_stage(GLcontext *ctx, struct draw_context *draw)
    fs->stage.tri = feedback_tri;
    fs->stage.flush = feedback_flush;
    fs->stage.reset_stipple_counter = feedback_reset_stipple_counter;
+   fs->stage.destroy = feedback_destroy;
    fs->ctx = ctx;
 
    return &fs->stage;
@@ -238,6 +239,12 @@ select_reset_stipple_counter( struct draw_stage *stage )
    /* no-op */
 }
 
+static void
+select_destroy( struct draw_stage *stage )
+{
+   /* no-op */
+}
+
 
 /**
  * Create GL selection mode drawing stage.
@@ -245,7 +252,7 @@ select_reset_stipple_counter( struct draw_stage *stage )
 static struct draw_stage *
 draw_glselect_stage(GLcontext *ctx, struct draw_context *draw)
 {
-   struct feedback_stage *fs = CALLOC_STRUCT(feedback_stage);
+   struct feedback_stage *fs = ST_CALLOC_STRUCT(feedback_stage);
 
    fs->stage.draw = draw;
    fs->stage.next = NULL;
@@ -254,6 +261,7 @@ draw_glselect_stage(GLcontext *ctx, struct draw_context *draw)
    fs->stage.tri = select_tri;
    fs->stage.flush = select_flush;
    fs->stage.reset_stipple_counter = select_reset_stipple_counter;
+   fs->stage.destroy = select_destroy;
    fs->ctx = ctx;
 
    return &fs->stage;