From 8b9abd09c8404c066926a85fea6504c01f687524 Mon Sep 17 00:00:00 2001 From: Hans Goudey <hans@blender.org> Date: Mon, 11 Mar 2024 10:41:31 -0400 Subject: [PATCH] Fix #119270: Multires color attribute fallback drawing changed to black Before e05c36f56d2b6f2eb50b the fallback for unsupported attributes was white. That's arbitrary, but not worth changing. --- source/blender/draw/intern/draw_pbvh.cc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/source/blender/draw/intern/draw_pbvh.cc b/source/blender/draw/intern/draw_pbvh.cc index c103969987a..1eb9d1eed12 100644 --- a/source/blender/draw/intern/draw_pbvh.cc +++ b/source/blender/draw/intern/draw_pbvh.cc @@ -314,6 +314,21 @@ static const CustomData *get_cdata(bke::AttrDomain domain, const PBVH_GPU_Args & } } +template<typename T> T fallback_value_for_fill() +{ + return T(); +} + +template<> ColorGeometry4f fallback_value_for_fill() +{ + return ColorGeometry4f(1.0f, 1.0f, 1.0f, 1.0f); +} + +template<> ColorGeometry4b fallback_value_for_fill() +{ + return fallback_value_for_fill<ColorGeometry4f>().encode(); +} + struct PBVHBatches { Vector<PBVHVbo> vbos; Map<std::string, PBVHBatch> batches; @@ -584,7 +599,7 @@ struct PBVHBatches { using VBOType = typename Converter::VBOType; std::fill_n(static_cast<VBOType *>(GPU_vertbuf_get_data(vbo.vert_buf)), GPU_vertbuf_get_vertex_len(vbo.vert_buf), - VBOType()); + Converter::convert(fallback_value_for_fill<T>())); }); } } -- GitLab