Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <j.bakker@atmind.nl>2019-05-08 16:38:11 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2019-05-09 15:45:45 +0300
commit0764cfe3deea2d39376a660ff06e8dc17f6401ba (patch)
treef12eab97bb5a227c9f2ace59edaad37f90e3062a /source/blender/draw
parent54ec0559c8ef203f2c029fc0e43373538ae5515f (diff)
Workbench: Viewport AA Preferences
In recent changes the viewport_quality setting was not working what users expected. This change will separate the anti-aliasing method that is being used. We now have three settings: * scene.display.render_aa: Will be used during `Render Image`. * scene.display.viewport_aa: Will be used during `Viewport Render Image`. * userpref.viewport_aa: Will be used in the 3d view. The viewport_quality setting has been replaced by the viewport_aa setting as it was the only thing in currently controlled. Reviewed By: brecht Maniphest Tasks: T64132 Differential Revision: https://developer.blender.org/D4828
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/engines/workbench/workbench_effect_taa.c22
-rw-r--r--source/blender/draw/engines/workbench/workbench_private.h23
2 files changed, 25 insertions, 20 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_effect_taa.c b/source/blender/draw/engines/workbench/workbench_effect_taa.c
index 7c411135634..4b54b0772d3 100644
--- a/source/blender/draw/engines/workbench/workbench_effect_taa.c
+++ b/source/blender/draw/engines/workbench/workbench_effect_taa.c
@@ -91,23 +91,19 @@ int workbench_taa_calculate_num_iterations(WORKBENCH_Data *vedata)
WORKBENCH_StorageList *stl = vedata->stl;
WORKBENCH_PrivateData *wpd = stl->g_data;
const Scene *scene = DRW_context_state_get()->scene;
- int result = scene->display.viewport_aa;
+ int result;
if (workbench_is_taa_enabled(wpd)) {
if (DRW_state_is_image_render()) {
- result = scene->display.render_aa;
- }
- else if (IN_RANGE_INCL(wpd->preferences->gpu_viewport_quality,
- GPU_VIEWPORT_QUALITY_TAA8,
- GPU_VIEWPORT_QUALITY_TAA16)) {
- result = MIN2(result, 8);
- }
- else if (IN_RANGE_INCL(wpd->preferences->gpu_viewport_quality,
- GPU_VIEWPORT_QUALITY_TAA16,
- GPU_VIEWPORT_QUALITY_TAA32)) {
- result = MIN2(result, 16);
+ const DRWContextState *draw_ctx = DRW_context_state_get();
+ if (draw_ctx->v3d) {
+ result = scene->display.viewport_aa;
+ }
+ else {
+ result = scene->display.render_aa;
+ }
}
else {
- result = MIN2(result, 32);
+ result = wpd->preferences->viewport_aa;
}
}
else {
diff --git a/source/blender/draw/engines/workbench/workbench_private.h b/source/blender/draw/engines/workbench/workbench_private.h
index e25503aef6e..09d9ad65717 100644
--- a/source/blender/draw/engines/workbench/workbench_private.h
+++ b/source/blender/draw/engines/workbench/workbench_private.h
@@ -319,23 +319,32 @@ typedef struct WORKBENCH_ObjectData {
BLI_INLINE bool workbench_is_taa_enabled(WORKBENCH_PrivateData *wpd)
{
if (DRW_state_is_image_render()) {
- return DRW_context_state_get()->scene->display.render_aa > SCE_DISPLAY_AA_FXAA;
+ const DRWContextState *draw_ctx = DRW_context_state_get();
+ if (draw_ctx->v3d) {
+ return draw_ctx->scene->display.viewport_aa > SCE_DISPLAY_AA_FXAA;
+ }
+ else {
+ return draw_ctx->scene->display.render_aa > SCE_DISPLAY_AA_FXAA;
+ }
}
else {
- return DRW_context_state_get()->scene->display.viewport_aa > SCE_DISPLAY_AA_FXAA &&
- wpd->preferences->gpu_viewport_quality >= GPU_VIEWPORT_QUALITY_TAA8 &&
- !wpd->is_playback;
+ return wpd->preferences->viewport_aa > SCE_DISPLAY_AA_FXAA && !wpd->is_playback;
}
}
BLI_INLINE bool workbench_is_fxaa_enabled(WORKBENCH_PrivateData *wpd)
{
if (DRW_state_is_image_render()) {
- return DRW_context_state_get()->scene->display.render_aa == SCE_DISPLAY_AA_FXAA;
+ const DRWContextState *draw_ctx = DRW_context_state_get();
+ if (draw_ctx->v3d) {
+ return draw_ctx->scene->display.viewport_aa == SCE_DISPLAY_AA_FXAA;
+ }
+ else {
+ return draw_ctx->scene->display.render_aa == SCE_DISPLAY_AA_FXAA;
+ }
}
else {
- if (wpd->preferences->gpu_viewport_quality >= GPU_VIEWPORT_QUALITY_FXAA &&
- DRW_context_state_get()->scene->display.viewport_aa == SCE_DISPLAY_AA_FXAA) {
+ if (wpd->preferences->viewport_aa == SCE_DISPLAY_AA_FXAA) {
return true;
}