diff --git a/source/blender/draw/intern/draw_pbvh.cc b/source/blender/draw/intern/draw_pbvh.cc index c103969987a86b78d64b6ac5927080bbb8939578..1eb9d1eed12993c55faf7e6499c6ffc1db53972b 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>())); }); } }