diff options
author | Anuj Phogat <[email protected]> | 2013-10-02 18:02:20 -0700 |
---|---|---|
committer | Anuj Phogat <[email protected]> | 2013-11-01 16:01:47 -0700 |
commit | 0d69e8c813070696942ffbe6efa4dc5186422199 (patch) | |
tree | c08b4002383f51097c500dd0f7475da856f7515b /src | |
parent | 77b440e42d8e7247c22959020bb087c63d298f2e (diff) |
mesa: Pass number of samples as a program state variable
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Reviewed-by: Ken Graunke <[email protected]>
Reviewed-by: Paul Berry <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/program/prog_statevars.c | 11 | ||||
-rw-r--r-- | src/mesa/program/prog_statevars.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/program/prog_statevars.c b/src/mesa/program/prog_statevars.c index 145c07c6767..f6fd53576c1 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 ec22b7376de..23a9f48c32f 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, /* An integer, not a float like the other state vars */ + STATE_DEPTH_RANGE, STATE_VERTEX_PROGRAM, |