|
|
|
вывод текста под углом (openGL)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Пытаюсь вывести текст под углом. Для создания фонта использую ГДИшную функцию CreateFont. glMatrixMode(OpenGL.OpenGLControl.GL_PROJECTION); glLoadIdentity(); glOrtho(-Width / 2, Width / 2, -Height / 2, Height / 2, -2, 2); glMatrixMode(OpenGL.OpenGLControl.GL_MODELVIEW); glLoadIdentity(); IntPtr dc = OpenGL.OpenGLControl.GetDC(Handle); gluLookAt(0, 0, 1, 0, 0, 0, 0, 1, 0); glClear(GL_COLOR_BUFFER_BIT); uint mbase; // База списка отображения для фонта IntPtr font; // Идентификатор фонта IntPtr oldFont; String font_name = "Arial"; char[] c = font_name.ToCharArray(); mbase = OpenGL.OpenGLControl.glGenLists(96); // Выделим место для 96 символов ( НОВОЕ ) fixed(char* pc=&c[0]) { font = CreateFont(48, // Height Of Font 0, // Width Of Font 0, // Angle Of Escapement 0, // Orientation Angle FW_BOLD, // Font Weight 0, // Italic 0, // Underline 0, // Strikeout ANSI_CHARSET, // Character Set Identifier OUT_TT_PRECIS, // Output Precision CLIP_DEFAULT_PRECIS, // Clipping Precision ANTIALIASED_QUALITY, // Output Quality FF_DONTCARE | DEFAULT_PITCH, // Family And Pitch pc); // Font Name } oldFont = OpenGL.OpenGLControl.SelectObject(dc, font); OpenGL.OpenGLControl.wglUseFontBitmaps(dc, 32, 96, mbase); OpenGL.OpenGLControl.SelectObject(dc, oldFont); // Selects The Font We Want OpenGL.OpenGLControl.DeleteObject(font); glColor3f(1,0,0); OpenGL.OpenGLControl.glRasterPos3d(0, 0, 0); OpenGL.OpenGLControl.glPushAttrib(OpenGL.OpenGLControl.GL_LIST_BIT); // Протолкнуть биты списка отображения ( НОВОЕ ) OpenGL.OpenGLControl.glListBase(mbase - 32); // Задать базу символа в 32 ( НОВОЕ ) Encoding ascii = Encoding.ASCII; string s = "yahoo"; byte[] b = ascii.GetBytes(s); OpenGL.OpenGLControl.glCallLists(s.Length, OpenGL.OpenGLControl.GL_UNSIGNED_BYTE, b);// Текст списками отображения(НОВОЕ) OpenGL.OpenGLControl.glPopAttrib(); // Возврат битов списка отображения ( НОВОЕ ) OpenGL.OpenGLControl.glDeleteLists(mbase, 96); // Удаление всех 96 списков отображения ( НОВОЕ ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2008, 10:43 |
|
||
|
вывод текста под углом (openGL)
|
|||
|---|---|---|---|
|
#18+
Упс.. случайно отправилось.. Так вот. перед созданием фонта вызываю glPushMatrix(); glRotate(90,0,0,1); и после отрисовки делаю glPopMatrix(); любые примитивы, отрисовывающиея между этими вызовами отрисовываются адекватно, а текс так и выводится параллельно оси X контекста.. Что делать??? Памагитееееееееее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2008, 10:46 |
|
||
|
вывод текста под углом (openGL)
|
|||
|---|---|---|---|
|
#18+
Ответ: никак. текстурным шрифта плевать на то в каком состоянии находится система координат. вместо wglUseFontBitmaps нужно использовать wglUseFontOutlines ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 16:32 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=16&tid=1345426]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 497ms |

| 0 / 0 |
