[Bf-blender-cvs] [ac4abb99e9a] greasepencil-refactor: Merge branch 'greasepencil-object' into greasepencil-refactor

Antonio Vazquez noreply at git.blender.org
Mon Dec 30 19:44:58 CET 2019


Commit: ac4abb99e9a5a2da32bf606c703e219d98c047a2
Author: Antonio Vazquez
Date:   Mon Dec 30 19:44:30 2019 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rBac4abb99e9a5a2da32bf606c703e219d98c047a2

Merge branch 'greasepencil-object' into greasepencil-refactor

 Conflicts:
	source/blender/blenloader/intern/versioning_280.c

===================================================================



===================================================================

diff --cc source/blender/blenloader/intern/versioning_280.c
index 6da703fb6ac,1011f3e1043..55a0fb00963
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@@ -4347,121 -4345,10 +4347,127 @@@ void blo_do_versions_280(FileData *fd, 
        }
      }
  
 +    /* Update Grease Pencil Materials */
 +    /* TODO: This requires version bump!! (we keep as is for testing). */
 +    {
 +      LISTBASE_FOREACH (Material *, mat, &bmain->materials) {
 +        MaterialGPencilStyle *gp_style = mat->gp_style;
 +        if (gp_style == NULL) {
 +          continue;
 +        }
 +        /* Fix Grease Pencil Material colors to Linear. */
 +        srgb_to_linearrgb_v4(gp_style->stroke_rgba, gp_style->stroke_rgba);
 +        srgb_to_linearrgb_v4(gp_style->fill_rgba, gp_style->fill_rgba);
 +
 +        /* Set Checker material as Solid. This fill mode has been removed and replaced
 +         * by textures. */
 +        if (gp_style->fill_style == GP_STYLE_FILL_STYLE_CHECKER) {
 +          gp_style->fill_style = GP_STYLE_FILL_STYLE_SOLID;
 +        }
 +        /* Update Alpha channel for texture opacity. */
 +        if (gp_style->fill_style == GP_STYLE_FILL_STYLE_TEXTURE) {
 +          gp_style->fill_rgba[3] *= gp_style->texture_opacity;
 +        }
 +        /* Stroke stencil mask to mix = 1. */
 +        if (gp_style->flag & GP_STYLE_STROKE_PATTERN) {
 +          gp_style->mix_stroke_factor = 1.0f;
 +          gp_style->flag &= ~GP_STYLE_STROKE_PATTERN;
 +        }
 +        /* Mix disabled, set mix factor to 0. */
 +        else if ((gp_style->flag & GP_STYLE_STROKE_TEX_MIX) == 0) {
 +          gp_style->mix_stroke_factor = 0.0f;
 +        }
 +      }
 +
 +      /* Fix Grease Pencil VFX and modifiers. */
 +      LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
 +        if (ob->type != OB_GPENCIL) {
 +          continue;
 +        }
 +        /* VFX. */
 +        LISTBASE_FOREACH (ShaderFxData *, fx, &ob->shader_fx) {
 +          switch (fx->type) {
 +            case eShaderFxType_Colorize: {
 +              ColorizeShaderFxData *vfx = (ColorizeShaderFxData *)fx;
 +              if (ELEM(vfx->mode, eShaderFxColorizeMode_GrayScale, eShaderFxColorizeMode_Sepia)) {
 +                vfx->factor = 1.0f;
 +              }
 +              srgb_to_linearrgb_v4(vfx->low_color, vfx->low_color);
 +              srgb_to_linearrgb_v4(vfx->high_color, vfx->high_color);
 +              break;
 +            }
 +            case eShaderFxType_Pixel: {
 +              PixelShaderFxData *vfx = (PixelShaderFxData *)fx;
 +              srgb_to_linearrgb_v4(vfx->rgba, vfx->rgba);
 +              break;
 +            }
 +            case eShaderFxType_Rim: {
 +              RimShaderFxData *vfx = (RimShaderFxData *)fx;
 +              srgb_to_linearrgb_v3_v3(vfx->rim_rgb, vfx->rim_rgb);
 +              srgb_to_linearrgb_v3_v3(vfx->mask_rgb, vfx->mask_rgb);
 +              break;
 +            }
 +            case eShaderFxType_Shadow: {
 +              ShadowShaderFxData *vfx = (ShadowShaderFxData *)fx;
 +              srgb_to_linearrgb_v4(vfx->shadow_rgba, vfx->shadow_rgba);
 +              break;
 +            }
 +            case eShaderFxType_Glow: {
 +              GlowShaderFxData *vfx = (GlowShaderFxData *)fx;
 +              srgb_to_linearrgb_v3_v3(vfx->glow_color, vfx->glow_color);
 +              srgb_to_linearrgb_v3_v3(vfx->select_color, vfx->select_color);
 +              break;
 +            }
 +            default:
 +              break;
 +          }
 +        }
 +
 +        /* Modifiers. */
 +        LISTBASE_FOREACH (GpencilModifierData *, md, &ob->greasepencil_modifiers) {
 +          const GpencilModifierTypeInfo *mti = BKE_gpencil_modifierType_getInfo(md->type);
 +          switch (mti->type) {
 +            case eGpencilModifierTypeType_Gpencil: {
 +              TintGpencilModifierData *mmd = (TintGpencilModifierData *)md;
 +              srgb_to_linearrgb_v3_v3(mmd->rgb, mmd->rgb);
 +              break;
 +            }
 +            default:
 +              break;
 +          }
 +        }
 +      }
 +
 +      /* Fix Layers Colors and Vertex Colors to Linear. */
 +      LISTBASE_FOREACH (bGPdata *, gpd, &bmain->gpencils) {
 +        if (gpd->flag & GP_DATA_ANNOTATIONS) {
 +          continue;
 +        }
 +        /* Onion colors. */
 +        srgb_to_linearrgb_v3_v3(gpd->gcolor_prev, gpd->gcolor_prev);
 +        srgb_to_linearrgb_v3_v3(gpd->gcolor_next, gpd->gcolor_next);
 +
 +        LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
 +          srgb_to_linearrgb_v4(gpl->tintcolor, gpl->tintcolor);
 +
 +          LISTBASE_FOREACH (bGPDframe *, gpf, &gpl->frames) {
 +            LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) {
 +              srgb_to_linearrgb_v4(gps->mix_color_fill, gps->mix_color_fill);
 +              int i;
 +              bGPDspoint *pt;
 +              for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) {
 +                srgb_to_linearrgb_v4(pt->mix_color, pt->mix_color);
 +              }
 +            }
 +          }
 +        }
 +      }
 +    }
++
+     /* Brush cursor alpha */
+     for (Brush *br = bmain->brushes.first; br; br = br->id.next) {
+       br->add_col[3] = 0.9f;
+       br->sub_col[3] = 0.9f;
+     }
    }
  }



More information about the Bf-blender-cvs mailing list