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 <jeroen@blender.org>2020-03-06 14:59:09 +0300
committerJeroen Bakker <jeroen@blender.org>2020-03-06 15:00:06 +0300
commit63bb2007d88b88824094447a745fa21d5fb2f61b (patch)
tree54af8d34a0b0ab41ddcac69b3d22d00d80305b5d /source/blender/draw
parentf0808b53abf2f208da5f20ad33637dc60bcf43d1 (diff)
CodeCleanup: Added View3DShading enums
Added the core enums that workbench draw engine uses.
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/engines/workbench/workbench_deferred.c19
-rw-r--r--source/blender/draw/engines/workbench/workbench_forward.c33
-rw-r--r--source/blender/draw/engines/workbench/workbench_materials.c10
-rw-r--r--source/blender/draw/engines/workbench/workbench_private.h25
4 files changed, 50 insertions, 37 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c
index 762eeced176..df9a597faf9 100644
--- a/source/blender/draw/engines/workbench/workbench_deferred.c
+++ b/source/blender/draw/engines/workbench/workbench_deferred.c
@@ -844,7 +844,7 @@ static WORKBENCH_MaterialData *get_or_create_material_data(WORKBENCH_Data *vedat
Material *mat,
Image *ima,
ImageUser *iuser,
- int color_type,
+ eV3DShadingColorType color_type,
int interp)
{
WORKBENCH_StorageList *stl = vedata->stl;
@@ -908,7 +908,8 @@ static void workbench_cache_populate_particles(WORKBENCH_Data *vedata, Object *o
ImageUser *iuser;
int interp;
workbench_material_get_image_and_mat(ob, part->omat, &image, &iuser, &interp, &mat);
- int color_type = workbench_material_determine_color_type(wpd, image, ob, false);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, image, ob, false);
WORKBENCH_MaterialData *material = get_or_create_material_data(
vedata, ob, mat, image, iuser, color_type, interp);
@@ -946,7 +947,8 @@ static void workbench_cache_populate_texture_paint_mode(WORKBENCH_Data *vedata,
Image *image = imapaint->canvas;
int interp = (imapaint->interp == IMAGEPAINT_INTERP_LINEAR) ? SHD_INTERP_LINEAR :
SHD_INTERP_CLOSEST;
- int color_type = workbench_material_determine_color_type(wpd, image, ob, use_sculpt_pbvh);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, image, ob, use_sculpt_pbvh);
struct GPUBatch *geom = DRW_cache_mesh_surface_texpaint_single_get(ob);
material = get_or_create_material_data(vedata, ob, NULL, image, NULL, color_type, interp);
@@ -963,7 +965,8 @@ static void workbench_cache_populate_texture_paint_mode(WORKBENCH_Data *vedata,
ImageUser *iuser;
int interp;
workbench_material_get_image_and_mat(ob, i + 1, &image, &iuser, &interp, &mat);
- int color_type = workbench_material_determine_color_type(wpd, image, ob, use_sculpt_pbvh);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, image, ob, use_sculpt_pbvh);
material = get_or_create_material_data(vedata, ob, mat, image, iuser, color_type, interp);
DRW_shgroup_call(material->shgrp, geom_array[i], ob);
}
@@ -981,7 +984,8 @@ static void workbench_cache_populate_vertex_paint_mode(WORKBENCH_Data *vedata, O
!DRW_state_is_image_render();
WORKBENCH_MaterialData *material;
- int color_type = workbench_material_determine_color_type(wpd, NULL, ob, use_sculpt_pbvh);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, NULL, ob, use_sculpt_pbvh);
struct GPUBatch *geom = DRW_cache_mesh_surface_vertpaint_get(ob);
material = get_or_create_material_data(vedata, ob, NULL, NULL, NULL, color_type, false);
DRW_shgroup_call(material->shgrp, geom, ob);
@@ -1055,7 +1059,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
ImageUser *iuser;
int interp;
workbench_material_get_image_and_mat(ob, i + 1, &image, &iuser, &interp, &mat);
- int color_type = workbench_material_determine_color_type(
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
wpd, image, ob, use_sculpt_pbvh);
if (color_type == V3D_SHADING_MATERIAL_COLOR && mat && mat->a < 1.0) {
material = workbench_forward_get_or_create_material_data(
@@ -1075,7 +1079,8 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
V3D_SHADING_OBJECT_COLOR,
V3D_SHADING_RANDOM_COLOR,
V3D_SHADING_VERTEX_COLOR)) {
- int color_type = workbench_material_determine_color_type(wpd, NULL, ob, use_sculpt_pbvh);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, NULL, ob, use_sculpt_pbvh);
if ((ob->color[3] < 1.0f) && (color_type == V3D_SHADING_OBJECT_COLOR)) {
material = workbench_forward_get_or_create_material_data(
diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c
index f2cc7cdf573..7e09016cf61 100644
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@ -134,13 +134,14 @@ static char *workbench_build_forward_composite_frag(void)
return str;
}
-WORKBENCH_MaterialData *workbench_forward_get_or_create_material_data(WORKBENCH_Data *vedata,
- Object *ob,
- Material *mat,
- Image *ima,
- ImageUser *iuser,
- int color_type,
- int interp)
+WORKBENCH_MaterialData *workbench_forward_get_or_create_material_data(
+ WORKBENCH_Data *vedata,
+ Object *ob,
+ Material *mat,
+ Image *ima,
+ ImageUser *iuser,
+ eV3DShadingColorType color_type,
+ int interp)
{
const DRWContextState *draw_ctx = DRW_context_state_get();
WORKBENCH_FORWARD_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg];
@@ -487,7 +488,8 @@ static void workbench_forward_cache_populate_particles(WORKBENCH_Data *vedata, O
ImageUser *iuser;
int interp;
workbench_material_get_image_and_mat(ob, part->omat, &image, &iuser, &interp, &mat);
- int color_type = workbench_material_determine_color_type(wpd, image, ob, false);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, image, ob, false);
WORKBENCH_MaterialData *material = workbench_forward_get_or_create_material_data(
vedata, ob, mat, image, iuser, color_type, interp);
@@ -543,7 +545,8 @@ static void workbench_forward_cache_populate_texture_paint_mode(WORKBENCH_Data *
Image *image = imapaint->canvas;
int interp = (imapaint->interp == IMAGEPAINT_INTERP_LINEAR) ? SHD_INTERP_LINEAR :
SHD_INTERP_CLOSEST;
- int color_type = workbench_material_determine_color_type(wpd, image, ob, use_sculpt_pbvh);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, image, ob, use_sculpt_pbvh);
struct GPUBatch *geom = DRW_cache_mesh_surface_texpaint_single_get(ob);
material = workbench_forward_get_or_create_material_data(
vedata, ob, NULL, image, NULL, color_type, interp);
@@ -562,7 +565,8 @@ static void workbench_forward_cache_populate_texture_paint_mode(WORKBENCH_Data *
ImageUser *iuser;
int interp;
workbench_material_get_image_and_mat(ob, i + 1, &image, &iuser, &interp, &mat);
- int color_type = workbench_material_determine_color_type(wpd, image, ob, use_sculpt_pbvh);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, image, ob, use_sculpt_pbvh);
material = workbench_forward_get_or_create_material_data(
vedata, ob, mat, image, iuser, color_type, interp);
@@ -582,7 +586,8 @@ static void workbench_forward_cache_populate_vertex_paint_mode(WORKBENCH_Data *v
!DRW_state_is_image_render();
WORKBENCH_MaterialData *material;
- int color_type = workbench_material_determine_color_type(wpd, NULL, ob, use_sculpt_pbvh);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, NULL, ob, use_sculpt_pbvh);
struct GPUBatch *geom = DRW_cache_mesh_surface_vertpaint_get(ob);
material = workbench_forward_get_or_create_material_data(
vedata, ob, NULL, NULL, NULL, color_type, false);
@@ -653,7 +658,8 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
ImageUser *iuser;
int interp;
workbench_material_get_image_and_mat(ob, i + 1, &image, &iuser, &interp, &mat);
- int color_type = workbench_material_determine_color_type(wpd, image, ob, use_sculpt_pbvh);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, image, ob, use_sculpt_pbvh);
material = workbench_forward_get_or_create_material_data(
vedata, ob, mat, image, iuser, color_type, interp);
DRW_shgroup_call(material->shgrp_object_outline, geom_array[i], ob);
@@ -666,7 +672,8 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
V3D_SHADING_RANDOM_COLOR,
V3D_SHADING_VERTEX_COLOR)) {
/* No material split needed */
- int color_type = workbench_material_determine_color_type(wpd, NULL, ob, use_sculpt_pbvh);
+ eV3DShadingColorType color_type = workbench_material_determine_color_type(
+ wpd, NULL, ob, use_sculpt_pbvh);
if (use_sculpt_pbvh) {
material = workbench_forward_get_or_create_material_data(
diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c
index 7adc74aab2d..5f1e3461d9f 100644
--- a/source/blender/draw/engines/workbench/workbench_materials.c
+++ b/source/blender/draw/engines/workbench/workbench_materials.c
@@ -292,12 +292,12 @@ int workbench_material_get_accum_shader_index(WORKBENCH_PrivateData *wpd,
return index;
}
-int workbench_material_determine_color_type(WORKBENCH_PrivateData *wpd,
- Image *ima,
- Object *ob,
- bool use_sculpt_pbvh)
+eV3DShadingColorType workbench_material_determine_color_type(WORKBENCH_PrivateData *wpd,
+ Image *ima,
+ Object *ob,
+ bool use_sculpt_pbvh)
{
- int color_type = wpd->shading.color_type;
+ eV3DShadingColorType color_type = wpd->shading.color_type;
const Mesh *me = (ob->type == OB_MESH) ? ob->data : NULL;
if ((color_type == V3D_SHADING_TEXTURE_COLOR) &&
diff --git a/source/blender/draw/engines/workbench/workbench_private.h b/source/blender/draw/engines/workbench/workbench_private.h
index faf85e4a7de..bb93864966e 100644
--- a/source/blender/draw/engines/workbench/workbench_private.h
+++ b/source/blender/draw/engines/workbench/workbench_private.h
@@ -285,7 +285,7 @@ typedef struct WORKBENCH_EffectInfo {
typedef struct WORKBENCH_MaterialData {
float base_color[3], metallic;
float roughness, alpha;
- int color_type;
+ eV3DShadingColorType color_type;
int interp;
Image *ima;
ImageUser *iuser;
@@ -452,13 +452,14 @@ void workbench_forward_cache_finish(WORKBENCH_Data *vedata);
/* For OIT in deferred */
void workbench_forward_outline_shaders_ensure(WORKBENCH_PrivateData *wpd, eGPUShaderConfig sh_cfg);
void workbench_forward_choose_shaders(WORKBENCH_PrivateData *wpd, eGPUShaderConfig sh_cfg);
-WORKBENCH_MaterialData *workbench_forward_get_or_create_material_data(WORKBENCH_Data *vedata,
- Object *ob,
- Material *mat,
- Image *ima,
- ImageUser *iuser,
- int color_type,
- int interp);
+WORKBENCH_MaterialData *workbench_forward_get_or_create_material_data(
+ WORKBENCH_Data *vedata,
+ Object *ob,
+ Material *mat,
+ Image *ima,
+ ImageUser *iuser,
+ eV3DShadingColorType color_type,
+ int interp);
/* workbench_effect_aa.c */
void workbench_aa_create_pass(WORKBENCH_Data *vedata, GPUTexture **tx);
@@ -488,10 +489,10 @@ void workbench_dof_create_pass(WORKBENCH_Data *vedata,
void workbench_dof_draw_pass(WORKBENCH_Data *vedata);
/* workbench_materials.c */
-int workbench_material_determine_color_type(WORKBENCH_PrivateData *wpd,
- Image *ima,
- Object *ob,
- bool use_sculpt_pbvh);
+eV3DShadingColorType workbench_material_determine_color_type(WORKBENCH_PrivateData *wpd,
+ Image *ima,
+ Object *ob,
+ bool use_sculpt_pbvh);
void workbench_material_get_image_and_mat(
Object *ob, int mat_nr, Image **r_image, ImageUser **r_iuser, int *r_interp, Material **r_mat);
char *workbench_material_build_defines(WORKBENCH_PrivateData *wpd,