Hi,
It’s possible to draw own created RhinoViewport with DisplayPipeline.DrawToBitmap method to Bitmap?
With standard Rhino Viewports DrawToBitmap works perfect, but when I create my own viewport then DrawToBitmap return null bitmap.
RhinoViewport rviewport = new RhinoViewport();
Bitmap vportBitmap = DisplayPipeline.DrawToBitmap(rviewport,200,200);
Hi,
I found a simple solution (maybe not elegant) just simply create a InstanceDefinition from object, then create preview with InstanceDefinition.CreatePreviewBitmap. After create bitmap simply purge InstanceDefinition from InstanceDefinitionTable.
List<Rhino.DocObjects.ObjectAttributes> objattrs = new List<Rhino.DocObjects.ObjectAttributes>();
List<Rhino.Geometry.GeometryBase> geometries = new List<Rhino.Geometry.GeometryBase>();
Rhino.DocObjects.ObjectAttributes objattr = new Rhino.DocObjects.ObjectAttributes();
objattr.ObjectColor = System.Drawing.Color.Red;
objattrs.Add(objattr);
geometries.Add((Rhino.Geometry.GeometryBase) new Rhino.Geometry.Torus(Rhino.Geometry.Plane.WorldXY,100,PenSize.Value.Value).ToNurbsSurface());
int idefindex = Rhino.RhinoDoc.ActiveDoc.InstanceDefinitions.Add("for preview", "preview image", new Rhino.Geometry.Point3d(0, 0, 0),geometries, objattrs);
previewBitmap = `Rhino.RhinoDoc.ActiveDoc.InstanceDefinitions[idefindex].CreatePreviewBitmap(DefinedViewportProjection.Perspective, Rhino.DocObjects.DisplayMode.RenderPreview, new System.Drawing.Size(200,200));`