Как печатать этикетки на glcontrol in opengl.net без использования GLUT
Нужно напечатать ярлыки на коробке GlControl для графика. Это можно легко сделать с помощью Glut. Однако, OpenGL.Net похоже, он не поддерживает перенасыщение.
Что я уже пробовал:
Попробовал написать строку на растровом изображении, а затем распечатать ее на Glcontrol, но она печатает какое-то мусорное значение.
Приложение находится в WinForm.
Следующий код был записан в функции делегата события GlControl.render:
Gl.Clear(ClearBufferMask.ColorBufferBit); Gl.ClearColor(1f,1f,1f,0); Gl.MatrixMode(MatrixMode.Texture); Gl.LoadIdentity(); Font drFont = new Font("Arial", 10); Pen redPen = new Pen(Color.Red, 1); SolidBrush drBrush = new SolidBrush(Color.Red); Bitmap bmp = new Bitmap(100,100,System.Drawing.Imaging.PixelFormat.Format24bppRgb); RectangleF rectf = new RectangleF(0, 0, bmp.Width, bmp.Height); // Create graphic object that will draw onto the bitmap Graphics g = Graphics.FromImage(bmp); g.SmoothingMode = SmoothingMode.AntiAlias; // The interpolation mode determines how intermediate values between two endpoints are calculated. g.InterpolationMode = InterpolationMode.HighQualityBicubic; // Use this property to specify either higher quality, slower rendering, or lower quality, faster rendering of the contents of this Graphics object. g.PixelOffsetMode = PixelOffsetMode.HighQuality; // This one is important g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; // Create string formatting options (used for alignment) StringFormat format = new StringFormat() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }; g.DrawString("Abc", new Font("Tahoma", 80), Brushes.Black, rectf, format); // Flush all graphics changes to the bitmap g.Flush(); ImageConverter i = new ImageConverter(); byte[] b = (byte[])i.ConvertTo(bmp, typeof(byte[])); Gl.RasterPos3(0, 0, 0); Gl.Bitmap(100, 100, 0, 0, 0, 0, b);
заранее спасибо