st/mesa: sink code needed for apply_texture_swizzle_to_border_color
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
@@ -176,23 +176,24 @@ st_convert_sampler(const struct st_context *st,
|
||||
msamp->BorderColor.ui[1] ||
|
||||
msamp->BorderColor.ui[2] ||
|
||||
msamp->BorderColor.ui[3]) {
|
||||
const struct st_texture_object *stobj = st_texture_object_const(texobj);
|
||||
const GLboolean is_integer = texobj->_IsIntegerFormat;
|
||||
|
||||
if (st->apply_texture_swizzle_to_border_color) {
|
||||
const struct st_texture_object *stobj = st_texture_object_const(texobj);
|
||||
const struct pipe_sampler_view *sv = NULL;
|
||||
union pipe_color_union border_color;
|
||||
GLuint i;
|
||||
|
||||
/* Just search for the first used view. We can do this because the
|
||||
swizzle is per-texture, not per context. */
|
||||
/* XXX: clean that up to not use the sampler view at all */
|
||||
for (i = 0; i < stobj->num_sampler_views; ++i) {
|
||||
for (unsigned i = 0; i < stobj->num_sampler_views; ++i) {
|
||||
if (stobj->sampler_views[i]) {
|
||||
sv = stobj->sampler_views[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (st->apply_texture_swizzle_to_border_color && sv) {
|
||||
if (sv) {
|
||||
union pipe_color_union tmp;
|
||||
const unsigned char swz[4] =
|
||||
{
|
||||
sv->swizzle_r,
|
||||
@@ -201,12 +202,16 @@ st_convert_sampler(const struct st_context *st,
|
||||
sv->swizzle_a,
|
||||
};
|
||||
|
||||
st_translate_color(&msamp->BorderColor,
|
||||
&border_color,
|
||||
st_translate_color(&msamp->BorderColor, &tmp,
|
||||
texBaseFormat, is_integer);
|
||||
|
||||
util_format_apply_color_swizzle(&sampler->border_color,
|
||||
&border_color, swz, is_integer);
|
||||
&tmp, swz, is_integer);
|
||||
} else {
|
||||
st_translate_color(&msamp->BorderColor,
|
||||
&sampler->border_color,
|
||||
texBaseFormat, is_integer);
|
||||
}
|
||||
} else {
|
||||
st_translate_color(&msamp->BorderColor,
|
||||
&sampler->border_color,
|
||||
|
Reference in New Issue
Block a user