[Mesa-dev] [PATCH 03/12] glsl/gsraytrace: Use __LINE__ macro to set line numbers in GLSL source strings.

Ian Romanick idr at freedesktop.org
Wed Feb 5 16:30:01 PST 2014


On 02/05/2014 01:07 PM, Fabian Bieler wrote:
> The hardcoded numbers are a few lines off at the moment.
> Keeping track of the numbers through further modifications is inconvenient.
> The __LINE__ "constant" takes care of this automatically.
> 
> Signed-off-by: Fabian Bieler <fabianbieler at fastmail.fm>
> ---
>  src/glsl/gsraytrace.cpp | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/src/glsl/gsraytrace.cpp b/src/glsl/gsraytrace.cpp
> index 62a584d..31e9fda 100644
> --- a/src/glsl/gsraytrace.cpp
> +++ b/src/glsl/gsraytrace.cpp
> @@ -37,6 +37,10 @@
>  // TODO: use GL_EXT_transform_feedback or GL3 equivalent
>  // TODO: port to piglit too
>  
> +#define STRINGIFY_(x) #x
> +#define STRINGIFY(x) STRINGIFY_(x)
> +#define S__LINE__ STRINGIFY(__LINE__)
> +
>  static const float INF=9999.9F;
>  
>  static int Win;
> @@ -67,7 +71,7 @@ float rot[9] = {1,0,0,  0,1,0,   0,0,1};
>  static const char* vsSource =
>  "                                                                  \n"
>  "#version 120                                                      \n"
> -"#line 63 63                                                       \n"
> +"#line " S__LINE__ S__LINE__ "\n"

I don't think this is correct before or after.  The first value is the
line number, and the second value is the source number (like the file
name in C or C++).  Setting the source number to the line number
seems... weird, at best.

I think

 "#line " S__LINE__ "\n"

is correct.

>  "#define SHADOWS                                                   \n"
>  "#define RECURSION                                                 \n"
>  "                                                                  \n"
> @@ -249,7 +253,7 @@ static const char* vsSource =
>  
>  static const char* gsSource = 
>  "#version 120                                                             \n"
> -"#line 245 245                                                            \n"
> +"#line " S__LINE__ S__LINE__ "\n"
>  "#extension GL_ARB_geometry_shader4: require                              \n"
>  "                                                                         \n"
>  "#define SHADOWS                                                          \n"
> @@ -388,7 +392,7 @@ static const char* gsSource =
>  
>  static const char* fsSource = 
>  "#version 120                                                             \n"
> -"#line 384 384                                                            \n"
> +"#line " S__LINE__ S__LINE__ "\n"
>  "                                                                         \n"
>  "#define SHADOWS                                                          \n"
>  "#define RECURSION                                                        \n"
> 



More information about the mesa-dev mailing list