На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование графики"
1) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с чтением, сохранением, обработкой, созданием, отрисовкой графической информации (в том числе - 3D [OpenGL, Direct3D] и анимации [в т.ч. VFW, DirectShow, OpenDML]).
Флэш обсуждают здесь!.

2) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе.

3) Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно.



Ваше мнение о модераторах: user posted imageBarazuk, user posted imageOpenGL, user posted imageMikle
Модераторы: OpenGL, Mikle
  
> Две формы
    Здравствуйте, нужна помощь. Хочу рисовать на двух формах одновременно(Builder). Инициализировал ОпенГЛ для обоих форм(нужно ли?), но обе формы закрашиваются черным, ничего не рисуется и вообщем все плохо. Я так понимаю, что-то с контекстами. Как правильно рисовать на двух формах?
    Сообщение отредактировано: Jaguar -
      Переключаться в любой момент или лучше в определенный? Я писал обработчики для событий OnAtivate, OnDisactivate:
      ExpandedWrap disabled
        void __fastcall TPic1::FormDeactivate(TObject *Sender)
        {
            wglMakeCurrent( hDC, NULL );
            wglDeleteContext( hRC );
            ReleaseDC( Handle, hDC );
            hRC = NULL;
            hDC = NULL;
        }
        void __fastcall TPic1::FormActivate(TObject *Sender)
        {
            hDC = GetDC(Pic1->Handle);
            if(!bSetupPixelFormat(hDC))
            Close();
            hRC = wglCreateContext(hDC);
            wglMakeCurrent(hDC,hRC);
        }

      Но так не сработало, что не так написал?
        Что-то у меня не получается, т.е. из одной формы я переключаю контекст для другой формы и наоборот?
        ExpandedWrap disabled
          void Draw() //Form2
          {
                  glClear(GL_DEPTH_BUFFER_BIT^GL_COLOR_BUFFER_BIT);
                  if(obj) obj->Paint();
                  SwapBuffers(hDC2);
                  wglMakeCurrent(hDC,hRC);
          }
          ....
          void Draw() //Form1
          {
                  glClear(GL_DEPTH_BUFFER_BIT^GL_COLOR_BUFFER_BIT);
                  if(obj) obj->Paint();
                  SwapBuffers(hDC);
                  wglMakeCurrent(hDC2,hRC2);
          }

        Так не получилось.
        Сообщение отредактировано: Jaguar -
          Цитата albom @
          Лучше после окончания рисования кадра.

          А почему перед рисованием хуже?
            А, меня просто смутило слово лучше :)
              albom, Спасибо, помогло, все работает. Только еще один вопросик: у тебя рисуется на TPanel, я попробывал рисовать на самой форме, но изображение мерцает, теперь вот рисую тоже на панельке. А в чем разница? И еще, при изменении размеров TPanel тоже изображение мерцает, можно ли что-нибудь сделать?
              Сообщение отредактировано: Jaguar -
                все, спс, решено.
                  OpenGLЗдравствуйте.Можете помогите пожалуйста с решением проблемы рисования на двух формах одновременно в OpenGL C++.
                    В чём конкретно заключается проблема?
                      OpenGLПроблема схожа с описанной в теме ранее.Одно окно рисует, а второе нет.Красит в черный цвет и все!!
                        Насколько помню, OpenGL предпочитает, чтобы в каждом окне кадр рисовался целиком от начала до конца.
                          Мне нужно чтобы кто-нибудь толково рассказал как переключать контексты.Думаю у меня проблема в этом.
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0394 ]   [ 16 queries used ]   [ Generated: 27.04.24, 04:27 GMT ]