diff options
-rw-r--r-- | src/mesa/shader/slang/slang_library_texsample.c | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/src/mesa/shader/slang/slang_library_texsample.c b/src/mesa/shader/slang/slang_library_texsample.c index 38765599cff..7d56880400f 100644 --- a/src/mesa/shader/slang/slang_library_texsample.c +++ b/src/mesa/shader/slang/slang_library_texsample.c @@ -39,10 +39,15 @@ GLvoid _slang_library_tex1d (GLfloat bias, GLfloat s, GLfloat sampler, GLfloat * GET_CURRENT_CONTEXT(ctx); SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint unit = (GLuint) sampler; - GLfloat texcoord[4] = { s, 0.0f, 0.0f, 1.0f }; + GLfloat texcoord[4]; GLfloat lambda = bias; GLchan rgba[4]; + texcoord[0] = s; + texcoord[1] = 0.0f; + texcoord[2] = 0.0f; + texcoord[3] = 1.0f; + swrast->TextureSample[unit] (ctx, ctx->Texture.Unit[unit]._Current, 1, (const GLfloat (*)[4]) texcoord, &lambda, &rgba); color[0] = CHAN_TO_FLOAT(rgba[0]); @@ -56,10 +61,15 @@ GLvoid _slang_library_tex2d (GLfloat bias, GLfloat s, GLfloat t, GLfloat sampler GET_CURRENT_CONTEXT(ctx); SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint unit = (GLuint) sampler; - GLfloat texcoord[4] = { s, t, 0.0f, 1.0f }; + GLfloat texcoord[4]; GLfloat lambda = bias; GLchan rgba[4]; + texcoord[0] = s; + texcoord[1] = t; + texcoord[2] = 0.0f; + texcoord[3] = 1.0f; + swrast->TextureSample[unit] (ctx, ctx->Texture.Unit[unit]._Current, 1, (const GLfloat (*)[4]) texcoord, &lambda, &rgba); color[0] = CHAN_TO_FLOAT(rgba[0]); @@ -74,10 +84,15 @@ GLvoid _slang_library_tex3d (GLfloat bias, GLfloat s, GLfloat t, GLfloat r, GLfl GET_CURRENT_CONTEXT(ctx); SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint unit = (GLuint) sampler; - GLfloat texcoord[4] = { s, t, r, 1.0f }; + GLfloat texcoord[4]; GLfloat lambda = bias; GLchan rgba[4]; + texcoord[0] = s; + texcoord[1] = t; + texcoord[2] = r; + texcoord[3] = 1.0f; + swrast->TextureSample[unit] (ctx, ctx->Texture.Unit[unit]._Current, 1, (const GLfloat (*)[4]) texcoord, &lambda, &rgba); color[0] = CHAN_TO_FLOAT(rgba[0]); @@ -92,10 +107,15 @@ GLvoid _slang_library_texcube (GLfloat bias, GLfloat s, GLfloat t, GLfloat r, GL GET_CURRENT_CONTEXT(ctx); SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint unit = (GLuint) sampler; - GLfloat texcoord[4] = { s, t, r, 1.0f }; + GLfloat texcoord[4]; GLfloat lambda = bias; GLchan rgba[4]; + texcoord[0] = s; + texcoord[1] = t; + texcoord[2] = r; + texcoord[3] = 1.0f; + swrast->TextureSample[unit] (ctx, ctx->Texture.Unit[unit]._Current, 1, (const GLfloat (*)[4]) texcoord, &lambda, &rgba); color[0] = CHAN_TO_FLOAT(rgba[0]); @@ -110,10 +130,15 @@ GLvoid _slang_library_shad1d (GLfloat bias, GLfloat s, GLfloat t, GLfloat r, GLf GET_CURRENT_CONTEXT(ctx); SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint unit = (GLuint) sampler; - GLfloat texcoord[4] = { s, t, r, 1.0f }; + GLfloat texcoord[4]; GLfloat lambda = bias; GLchan rgba[4]; + texcoord[0] = s; + texcoord[1] = t; + texcoord[2] = r; + texcoord[3] = 1.0f; + swrast->TextureSample[unit] (ctx, ctx->Texture.Unit[unit]._Current, 1, (const GLfloat (*)[4]) texcoord, &lambda, &rgba); color[0] = CHAN_TO_FLOAT(rgba[0]); @@ -128,10 +153,15 @@ GLvoid _slang_library_shad2d (GLfloat bias, GLfloat s, GLfloat t, GLfloat r, GLf GET_CURRENT_CONTEXT(ctx); SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint unit = (GLuint) sampler; - GLfloat texcoord[4] = { s, t, r, 1.0f }; + GLfloat texcoord[4]; GLfloat lambda = bias; GLchan rgba[4]; + texcoord[0] = s; + texcoord[1] = t; + texcoord[2] = r; + texcoord[3] = 1.0f; + swrast->TextureSample[unit] (ctx, ctx->Texture.Unit[unit]._Current, 1, (const GLfloat (*)[4]) texcoord, &lambda, &rgba); color[0] = CHAN_TO_FLOAT(rgba[0]); |