diff options
Diffstat (limited to 'src')
| -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 38765599cf..7d56880400 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]); | 
