На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> opengl trouble
    Использую я borlandc c 5.02
    вот решил  порисовать что-нибудь
    у меня возникла проблема: часто вылетает будь
    то в результате запуска из компилятора или же просто так.
    окно создаю с тем стилем который советуют
    в opengl.hlp ..в чем проблема ?

    может быть исходник это через чур но все же:
    #include <windows.h>
    #include <gl\gl.h>
    #include <gl\glu.h>

    HWND hwnd;

    HINSTANCE hi;
    PIXELFORMATDESCRIPTOR pfd;
    int pixelformat;
    MSG msg;
    HDC hdc;
    HGLRC hgl;
    WNDCLASS wc;



    LRESULT CALLBACK prog (HWND,UINT,WPARAM,LPARAM);
    int WINAPI WinMain (HINSTANCE h,HINSTANCE ,LPSTR,int )
    {

       hi=h;
       memset(&wc,0,sizeof(wc));
       wc.lpfnWndProc=prog;
       wc.hInstance=h;
       wc.hbrBackground=(HBRUSH)(9);
       wc.lpszClassName="multy";
       RegisterClass(&wc);
       hwnd=CreateWindow("multy","multy",WS_POPUP|WS_CLIPCHILDREN|WS_CLIPSIBLINGS,0,0,640,480,NULL,NULL,h,NULL);
       hdc=GetDC(hwnd);
       ShowWindow(hwnd,SW_SHOW);
       memset(&pfd,0,sizeof(pfd));
       pfd.nSize = sizeof(pfd);
       pfd.nVersion = 1;
       pfd.dwFlags =PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER;
       pfd.iPixelType = PFD_TYPE_RGBA;
       pfd.cColorBits = 32;
       pixelformat = ChoosePixelFormat(hdc, &pfd);
       SetPixelFormat(hdc, pixelformat, &pfd);
       hgl=wglCreateContext(hdc);
       wglMakeCurrent(hdc,hgl);
     


       while(GetMessage(&msg,NULL,0,0))
           {
            DispatchMessage(&msg);

           }
       wglMakeCurrent(NULL, NULL);
       ReleaseDC(hwnd,hdc);
       wglDeleteContext(hgl);
       return(0);
    }
    LRESULT CALLBACK prog(HWND hwnd1,UINT msg1,WPARAM w,LPARAM l)
     {
      switch(msg1)
       {
        case WM_PAINT:
         glBegin(GL_POLYGON);
         glColor4f(1,0,0,0);glVertex2d(-1,-1);glVertex2d(0,1);glVertex2d(1,0)
         ;glEnd();glFlush();SwapBuffers(hdc);break;
        case WM_DESTROY:PostQuitMessage(0);
        break;
        default:return(DefWindowProc(hwnd1,msg1,w,l));
       }
     return(0);
    }
      Вроде бы все правильно только, перед SwapBuff flush вызывать не обязательно. И лучше используй Билдер.
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


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