У меня есть текстурированная коробка в моем окне. Поверх этого поля текст печатается с использованием QuickFont. Поскольку текста добавляется много и не весь сразу, на обновление этого экрана уходит время. Чтобы сэкономить время и ресурсы, я хочу сделать скриншот блока с текстом и использовать его в качестве текстуры, что намного быстрее, потому что после первого рендеринга нечего анализировать.
Я могу получить glControl для самой шапки экрана и сохранить ее в растровое изображение, но на экране нет текста. (К вашему сведению, это должна быть WYSIWYG-рендеринг распечатки для аптечных этикеток)
Есть ли способ сохранить текст?
if (GraphicsContext.CurrentContext == null)
throw new GraphicsContextException();
Bitmap bmp = new Bitmap(frm1.ClientSize.Width, frm1.ClientSize.Height);
System.Drawing.Imaging.BitmapData data =
bmp.LockBits(frm1.ClientRectangle, System.Drawing.Imaging.ImageLockMode.WriteOnly,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
GL.ReadPixels(0, 0, frm1.ClientSize.Width,frm1.ClientSize.Height,
OpenTK.Graphics.OpenGL.PixelFormat.Bgr, PixelType.UnsignedByte, data.Scan0);
bmp.UnlockBits(data);
bmp.RotateFlip(RotateFlipType.RotateNoneFlipY);
bmp.Save("Move.bmp", ImageFormat.Bmp);
bmp.Dispose();