Module: Mesa Branch: floating Commit: cb950316df8803bda4a487a6cafc9375dba13650 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cb950316df8803bda4a487a6cafc9375dba13650
Author: Luca Barbieri <[email protected]> Date: Thu Aug 26 18:18:25 2010 +0200 gallium: add color clamping to the interface --- src/gallium/docs/source/cso/rasterizer.rst | 28 ++++++++++++++++++++++++++++ src/gallium/include/pipe/p_defines.h | 4 +++- src/gallium/include/pipe/p_state.h | 2 ++ 3 files changed, 33 insertions(+), 1 deletions(-) diff --git a/src/gallium/docs/source/cso/rasterizer.rst b/src/gallium/docs/source/cso/rasterizer.rst index ee3419c..622798a 100644 --- a/src/gallium/docs/source/cso/rasterizer.rst +++ b/src/gallium/docs/source/cso/rasterizer.rst @@ -7,6 +7,34 @@ The rasterizer state controls the rendering of points, lines and triangles. Attributes include polygon culling state, line width, line stipple, multisample state, scissoring and flat/smooth shading. +Linkage +------- + +clamp_vertex_color +^^^^^^^^^^^^^^^^^^ + +If set, TGSI_SEMANTIC_COLOR registers are clamped to the [0, 1] range after +the execution of the vertex shader, before being passed to the geometry +shader or fragment shader. + +OpenGL: glClampColor(GL_CLAMP_VERTEX_COLOR) in GL 3.0 or GL_ARB_color_buffer_float + +D3D11: seems always disabled + +XXX: this happens _before_ the geometry shader and thus might not belong here. + +clamp_fragment_color +^^^^^^^^^^^^^^^^^^^^ + +Controls whether TGSI_SEMANTIC_COLOR outputs of the fragment shader +are clamped to [0, 1]. + +OpenGL: glClampColor(GL_CLAMP_FRAGMENT_COLOR) in GL 3.0 or ARB_color_buffer_float + +D3D11: seems always disabled + +XXX: this happens _after_ the fragment shader and thus might not belong here. + Shading ------- diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 35eccf1..3cb6fc6 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -494,7 +494,9 @@ enum pipe_cap { PIPE_CAP_MAX_VS_PREDS, PIPE_CAP_GEOMETRY_SHADER4, - PIPE_CAP_DEPTH_CLAMP + PIPE_CAP_DEPTH_CLAMP, + PIPE_CAP_UNCLAMPED_VERTEX_COLOR, + PIPE_CAP_UNCLAMPED_FRAGMENT_COLOR, }; diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index 0f1a44c..917560c 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -81,6 +81,8 @@ struct pipe_rasterizer_state { unsigned flatshade:1; unsigned light_twoside:1; + unsigned clamp_vertex_color:1; /* probably shouldn't be there... */ + unsigned clamp_fragment_color:1; /* probably shouldn't be there... */ unsigned front_ccw:1; unsigned cull_face:2; /**< PIPE_FACE_x */ unsigned fill_front:2; /**< PIPE_POLYGON_MODE_x */ _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
