DrawViewportWires / Meshes only called when there are C# outputs

Hi,
I’m finding when making C# components a new behavior Grasshopper in Rhino 8.

In the past, I found that DrawViewportMeshes and Wires are always called when rendering the viewport, assuming the component is being previewed. Now it appears that these are only called if the component has geometry outputs and these outputs have a value in them. I’m trying to make a component to preview a Bitmap in the Rhino viewport, and it only works when I add a dummy output for a point like this:

 public class PreviewImage : GH_Component
 {
     private DisplayBitmap _previewBitmap = null;
     /// <summary>
     /// Initializes a new instance of the PreviewImage class.
     /// </summary>
     public PreviewImage()
       : base("PreviewImage", "PreviewImage",
           "Draws a preview image",
           "", "")
     {
     }

     public override void DrawViewportMeshes(IGH_PreviewArgs args)
     {
         if (_previewBitmap == null) return;
         args.Display.DrawBitmap(_previewBitmap, 0, 0);
     }

     public override void DrawViewportWires(IGH_PreviewArgs args)
     {
     }

     /// <summary>
     /// Registers all the input parameters for this component.
     /// </summary>
     protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager)
     {
         pManager.AddGenericParameter("Bitmap", "Bitmap", "Bitmap to preview", GH_ParamAccess.item);//0
     }

     /// <summary>
     /// Registers all the output parameters for this component.
     /// </summary>
     protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager)
     {
         pManager.Register_PointParam("p", "p", "p");
     }

     /// <summary>
     /// This is the method that actually does the work.
     /// </summary>
     /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
     protected override void SolveInstance(IGH_DataAccess DA)
     {
         Bitmap b = null;
         DA.GetData(0, ref b);
         _previewBitmap = new DisplayBitmap(b);
         DA.SetData(0, new Point3d());
     }

     /// <summary>
     /// Provides an Icon for the component.
     /// </summary>
     protected override System.Drawing.Bitmap Icon
     {
         get
         {
             //You can add image files to your project resources and access them like this:
             // return Resources.IconForThisComponent;
             return null;
         }
     }

     /// <summary>
     /// Gets the unique ID for this component. Do not change this ID after release.
     /// </summary>
     public override Guid ComponentGuid
     {
         get { return new Guid("2BDA912A-016B-4206-8AA5-0F5774C17586"); }
     }
 }

without testing but i think you need to override

public override BoundingBox ClippingBox

Indeed, it sounds related to this report:

might be related - if there is only a scripting component, that has preview enabled, it will not work: