On 10/25/2013 05:45 PM, Anuj Phogat wrote:
Number of samples will be required in fragment shader program by new
GLSL builtin uniform "gl_NumSamples".

V2: Use "state.numsamples" in place of "state.num.samples"
     Use _NEW_BUFFERS flag in place of _NEW_MULTISAMPLE

Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com>
Reviewed-by: Ian Romanick <i...@freedesktop.org>
Reviewed-by: Ken Graunke <kenn...@whitecape.org>
Reviewed-by: Paul Berry <stereotype...@gmail.com>
---
  src/mesa/program/prog_statevars.c | 11 +++++++++++
  src/mesa/program/prog_statevars.h |  2 ++
  2 files changed, 13 insertions(+)

diff --git a/src/mesa/program/prog_statevars.c 
b/src/mesa/program/prog_statevars.c
index 145c07c..f6fd535 100644
--- a/src/mesa/program/prog_statevars.c
+++ b/src/mesa/program/prog_statevars.c
@@ -349,6 +349,9 @@ _mesa_fetch_state(struct gl_context *ctx, const 
gl_state_index state[],
           }
        }
        return;
+   case STATE_NUM_SAMPLES:
+      ((int *)value)[0] = ctx->DrawBuffer->Visual.samples;
+      return;
     case STATE_DEPTH_RANGE:
        value[0] = ctx->Viewport.Near;                     /* near       */
        value[1] = ctx->Viewport.Far;                      /* far        */
@@ -665,6 +668,9 @@ _mesa_program_state_flags(const gl_state_index 
state[STATE_LENGTH])
     case STATE_PROGRAM_MATRIX:
        return _NEW_TRACK_MATRIX;

+   case STATE_NUM_SAMPLES:
+      return _NEW_BUFFERS;
+
     case STATE_DEPTH_RANGE:
        return _NEW_VIEWPORT;

@@ -852,6 +858,9 @@ append_token(char *dst, gl_state_index k)
     case STATE_TEXENV_COLOR:
        append(dst, "texenv");
        break;
+   case STATE_NUM_SAMPLES:
+      append(dst, "numsamples");
+      break;
     case STATE_DEPTH_RANGE:
        append(dst, "depth.range");
        break;
@@ -1027,6 +1036,8 @@ _mesa_program_state_string(const gl_state_index 
state[STATE_LENGTH])
        break;
     case STATE_FOG_COLOR:
        break;
+   case STATE_NUM_SAMPLES:
+      break;
     case STATE_DEPTH_RANGE:
        break;
     case STATE_FRAGMENT_PROGRAM:
diff --git a/src/mesa/program/prog_statevars.h 
b/src/mesa/program/prog_statevars.h
index ec22b73..c3081c4 100644
--- a/src/mesa/program/prog_statevars.h
+++ b/src/mesa/program/prog_statevars.h
@@ -103,6 +103,8 @@ typedef enum gl_state_index_ {

     STATE_TEXENV_COLOR,

+   STATE_NUM_SAMPLES,
+

You might put a comment on that token to note that it's an integer, not a float like the other state vars.


     STATE_DEPTH_RANGE,

     STATE_VERTEX_PROGRAM,


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to