Merge branch 'blender-v2.83-release'

This commit is contained in:
Brecht Van Lommel 2020-05-07 22:06:22 +02:00
commit 04c04b6f4d
6 changed files with 16 additions and 7 deletions

View File

@ -505,7 +505,7 @@ static void studiolight_create_equirect_radiance_gputexture(StudioLight *sl)
GPUTexture *tex = sl->equirect_radiance_gputexture;
GPU_texture_bind(tex, 0);
GPU_texture_filter_mode(tex, true);
GPU_texture_wrap_mode(tex, true);
GPU_texture_wrap_mode(tex, true, true);
GPU_texture_unbind(tex);
}
sl->flag |= STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE;
@ -569,7 +569,7 @@ static void studiolight_create_equirect_irradiance_gputexture(StudioLight *sl)
GPUTexture *tex = sl->equirect_irradiance_gputexture;
GPU_texture_bind(tex, 0);
GPU_texture_filter_mode(tex, true);
GPU_texture_wrap_mode(tex, true);
GPU_texture_wrap_mode(tex, true, true);
GPU_texture_unbind(tex);
}
sl->flag |= STUDIOLIGHT_EQUIRECT_IRRADIANCE_GPUTEXTURE;

View File

@ -855,7 +855,10 @@ void BKE_volume_eval_geometry(struct Depsgraph *depsgraph, Volume *volume)
/* Flush back to original. */
if (DEG_is_active(depsgraph)) {
Volume *volume_orig = (Volume *)DEG_get_original_id(&volume->id);
volume_orig->runtime.frame = volume->runtime.frame;
if (volume_orig->runtime.frame != volume->runtime.frame) {
BKE_volume_unload(volume_orig);
volume_orig->runtime.frame = volume->runtime.frame;
}
}
}

View File

@ -267,6 +267,7 @@ static DRWVolumeGrid *volume_grid_cache_get(Volume *volume,
GPU_texture_bind(cache_grid->texture, 0);
GPU_texture_swizzle_channel_auto(cache_grid->texture, channels);
GPU_texture_wrap_mode(cache_grid->texture, false, false);
GPU_texture_unbind(cache_grid->texture);
MEM_freeN(voxels);

View File

@ -69,7 +69,7 @@ void drw_texture_set_parameters(GPUTexture *tex, DRWTextureFlag flags)
else {
GPU_texture_filter_mode(tex, flags & DRW_TEX_FILTER);
}
GPU_texture_wrap_mode(tex, flags & DRW_TEX_WRAP);
GPU_texture_wrap_mode(tex, flags & DRW_TEX_WRAP, true);
GPU_texture_compare_mode(tex, flags & DRW_TEX_COMPARE);
GPU_texture_unbind(tex);
}

View File

@ -245,7 +245,7 @@ void GPU_texture_generate_mipmap(GPUTexture *tex);
void GPU_texture_compare_mode(GPUTexture *tex, bool use_compare);
void GPU_texture_filter_mode(GPUTexture *tex, bool use_filter);
void GPU_texture_mipmap_mode(GPUTexture *tex, bool use_mipmap, bool use_filter);
void GPU_texture_wrap_mode(GPUTexture *tex, bool use_repeat);
void GPU_texture_wrap_mode(GPUTexture *tex, bool use_repeat, bool use_clamp);
void GPU_texture_filters(GPUTexture *tex,
eGPUFilterFunction min_filter,
eGPUFilterFunction mag_filter);

View File

@ -1856,11 +1856,11 @@ void GPU_texture_mipmap_mode(GPUTexture *tex, bool use_mipmap, bool use_filter)
glTexParameteri(tex->target_base, GL_TEXTURE_MAG_FILTER, filter);
}
void GPU_texture_wrap_mode(GPUTexture *tex, bool use_repeat)
void GPU_texture_wrap_mode(GPUTexture *tex, bool use_repeat, bool use_clamp)
{
WARN_NOT_BOUND(tex);
GLenum repeat = (use_repeat) ? GL_REPEAT : GL_CLAMP_TO_EDGE;
GLenum repeat = (use_repeat) ? GL_REPEAT : (use_clamp) ? GL_CLAMP_TO_EDGE : GL_CLAMP_TO_BORDER;
glActiveTexture(GL_TEXTURE0 + tex->number);
glTexParameteri(tex->target_base, GL_TEXTURE_WRAP_S, repeat);
@ -1870,6 +1870,11 @@ void GPU_texture_wrap_mode(GPUTexture *tex, bool use_repeat)
if (tex->target_base == GL_TEXTURE_3D) {
glTexParameteri(tex->target_base, GL_TEXTURE_WRAP_R, repeat);
}
if (repeat == GL_CLAMP_TO_BORDER) {
const float black[] = {0.0f, 0.0f, 0.0f, 0.0f};
glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, black);
}
}
void GPU_texture_swizzle_channel_auto(GPUTexture *tex, int channels)