Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Программирование графики
Перезагрузить страницу Как крутить загруженную модель на API
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Anteater Anteater вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2011
По умолчанию Как крутить загруженную модель на API - 28.03.2011, 19:04

Подскажите, новичку, Как крутить загруженную модель на API?

Если по событию WM_PAINT нормально рисуется модель
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
...
Draw();
glFinish();
SwapBuffers(hDC)ж
EndPaint(hWnd, &ps);
break;

То по

case WM_MOUSEMOVE:
...
hdc = BeginPaint(hWnd, &ps);
glMatrixMode(GL_PROJECTION);
glRotated(xRotateAngle, 1.0, 0.0, 0.0);
glRotated(yRotateAngle, 0.0, 1.0, 0.0);
glFinish();
::SwapBuffers(hdc) == FALSE )

рисуется ерунда :-(

В чем ошибка?
Как организовать врашение без повторной загрузки сложной модели?


Нашел решение через GLUT (glutPostRedisplay())
но оно мне не подходит.
Какая последовательность API команд делает то же самое?

Заранее спасибо
Ответить с цитированием
  (#2 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,276
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 28.03.2011, 20:01

BeginPaint нельзя использовать в произвольном месте программы:
Цитата:
Сообщение от MSDN
An application should not call BeginPaint except in response to a WM_PAINT message.
Получайте DC другим способом, например, через GetWindowDC
Ответить с цитированием
  (#3 (permalink)) Старый
Anteater Anteater вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2011
По умолчанию 31.03.2011, 18:42

Цитата:
Сообщение от Alexiski Посмотреть сообщение
BeginPaint нельзя использовать в произвольном месте программы:


Получайте DC другим способом, например, через GetWindowDC
Спасибо, но не в этом дело.

Если вставить код полного рисования модели в WM_MOUSEMOVE, то все отлично рисуется.
А если посылать SendMessage(hWnd, WM_PAINT, 0, 0), но по флагу делать только поворот, то получаю рябь в окне, вместо объектов.
Ответить с цитированием
  (#4 (permalink)) Старый
Anteater Anteater вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.03.2011
По умолчанию 27.04.2011, 21:39

Все решилось с помощью списков изображений (display lists)
cpp Код:
if (firstDraw)
    {
      firstDraw = 0;
      // Create display list
      glNewList(mainListNumber, GL_COMPILE_AND_EXECUTE);
      Draw();
      glEndList();
    }
    else
    {
      // Call display list
      glCallList(mainListNumber);
    }
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
модель видеокарты сергей 2303 Любые вопросы от новичков 2 31.01.2012 20:07
Как узнать модель видеокарты Welder.MP Любые вопросы от новичков 7 24.12.2011 17:26
модель в Simulink Gira Задания за деньги 4 01.12.2011 21:18
продукционная модель знаний, возможно ли реализовать такую модель? Эмон Prolog 6 22.05.2011 18:27
модель мамки pasha7890 Любые вопросы от новичков 12 04.04.2011 16:28
CD привод перестал крутить диски. Graf2008 Техническая поддержка 4 17.07.2008 18:18
как построить 3D модель just_vladimir Алгоритмы 1 06.04.2008 19:40
Продукционная модель master173s Prolog 1 17.01.2008 21:30
Модель освещения, ландшафт kata Программирование графики 1 23.01.2007 20:43
Фреймовая модель на прологе SmilingWizard Prolog 6 15.06.2006 13:00
Как двигать 3ds модель в пространстве beetle Программирование графики 9 15.03.2006 21:14
MDI-модель: как избавиться Anonymous Oberon 8 22.02.2005 07:34



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов