<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    天空是藍(lán)色的

    做好軟件為中國(guó) #gcc -c helloworld.c -o helloworld.o //編譯目標(biāo)文件 #gcc helloworld.o -o helloworld //編譯成可執(zhí)行exe #helloworld //運(yùn)行exe
    數(shù)據(jù)加載中……
    OpenGL

    main.cpp
    /**************************
     * Includes
     *
     **************************/

    #include <windows.h>
    #include <gl/gl.h>


    /**************************
     * Function Declarations
     *
     **************************/

    LRESULT CALLBACK WndProc (HWND hWnd, UINT message,
    WPARAM wParam, LPARAM lParam);
    void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC);
    void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC);


    /**************************
     * WinMain
     *
     **************************/

    int WINAPI WinMain (HINSTANCE hInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpCmdLine,
                        int iCmdShow)
    {
        WNDCLASS wc;
        HWND hWnd;
        HDC hDC;
        HGLRC hRC;       
        MSG msg;
        BOOL bQuit = FALSE;
        float theta = 0.0f;

        /* register window class */
        wc.style = CS_OWNDC;
        wc.lpfnWndProc = WndProc;
        wc.cbClsExtra = 0;
        wc.cbWndExtra = 0;
        wc.hInstance = hInstance;
        wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wc.hCursor = LoadCursor (NULL, IDC_ARROW);
        wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH);
        wc.lpszMenuName = NULL;
        wc.lpszClassName = "GLSample";
        RegisterClass (&wc);

        /* create main window */
        hWnd = CreateWindow (
          "GLSample", "OpenGL Sample",
          WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE,
          0, 0, 256, 256,
          NULL, NULL, hInstance, NULL);

        /* enable OpenGL for the window */
        EnableOpenGL (hWnd, &hDC, &hRC);

        /* program main loop */
        while (!bQuit)
        {
            /* check for messages */
            if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
            {
                /* handle or dispatch messages */
                if (msg.message == WM_QUIT)
                {
                    bQuit = TRUE;
                }
                else
                {
                    TranslateMessage (&msg);
                    DispatchMessage (&msg);
                }
            }
            else
            {
                /* OpenGL animation code goes here */

                glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
                glClear (GL_COLOR_BUFFER_BIT);

                glPushMatrix ();
                glRotatef (theta, 0.0f, 0.0f, 1.0f);
                glBegin (GL_TRIANGLES);
                glColor3f (1.0f, 0.0f, 0.0f);   glVertex2f (0.0f, 1.0f);
                glColor3f (0.0f, 1.0f, 0.0f);   glVertex2f (0.87f, -0.5f);
                glColor3f (0.0f, 0.0f, 1.0f);   glVertex2f (-0.87f, -0.5f);
                glEnd ();
                glPopMatrix ();

                SwapBuffers (hDC);

                theta += 1.0f;
                Sleep (1);
            }
        }

        /* shutdown OpenGL */
        DisableOpenGL (hWnd, hDC, hRC);

        /* destroy the window explicitly */
        DestroyWindow (hWnd);

        return msg.wParam;
    }


    /********************
     * Window Procedure
     *
     ********************/

    LRESULT CALLBACK WndProc (HWND hWnd, UINT message,
                              WPARAM wParam, LPARAM lParam)
    {

        switch (message)
        {
        case WM_CREATE:
            return 0;
        case WM_CLOSE:
            PostQuitMessage (0);
            return 0;

        case WM_DESTROY:
            return 0;

        case WM_KEYDOWN:
            switch (wParam)
            {
            case VK_ESCAPE:
                PostQuitMessage(0);
                return 0;
            }
            return 0;

        default:
            return DefWindowProc (hWnd, message, wParam, lParam);
        }
    }


    /*******************
     * Enable OpenGL
     *
     *******************/

    void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC)
    {
        PIXELFORMATDESCRIPTOR pfd;
        int iFormat;

        /* get the device context (DC) */
        *hDC = GetDC (hWnd);

        /* set the pixel format for the DC */
        ZeroMemory (&pfd, 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 = 24;
        pfd.cDepthBits = 16;
        pfd.iLayerType = PFD_MAIN_PLANE;
        iFormat = ChoosePixelFormat (*hDC, &pfd);
        SetPixelFormat (*hDC, iFormat, &pfd);

        /* create and enable the render context (RC) */
        *hRC = wglCreateContext( *hDC );
        wglMakeCurrent( *hDC, *hRC );

    }


    /******************
     * Disable OpenGL
     *
     ******************/

    void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC)
    {
        wglMakeCurrent (NULL, NULL);
        wglDeleteContext (hRC);
        ReleaseDC (hWnd, hDC);
    }

    posted on 2006-02-14 17:23 bluesky 閱讀(3303) 評(píng)論(5)  編輯  收藏 所屬分類: C/C++

    評(píng)論

    # re: OpenGL[未登錄](méi) 2007-02-06 15:54 哈哈

    代碼怎么跟wx_DevCPP生成的一模一樣啊?

    # re: OpenGL 2008-01-28 21:14 吳楚

    玩游戲了。

    # re: OpenGL 2008-01-28 21:14 吳楚

    玩游戲了,就是玩了。

    # re: OpenGL 2008-01-28 21:16 吳楚

    安靜偉大那里棵刊物卡立刻大量扣帽子瓦斯矛盾安慰 瓦斯了,的, 啊奧妙達(dá)到;安慰安慰似的棵啊按時(shí)擴(kuò)大;靈敏度啊似的棵;拉,啊;勞動(dòng)我方面啊大拿帶按時(shí)那么啊啊挖;勞動(dòng)?jì)寢尩拇虬l(fā)擴(kuò)大立刻衛(wèi)生帶們。生產(chǎn)擴(kuò)大那時(shí)名稱啊按時(shí)按時(shí) 素淡立刻撒;勒克司。/安慰的迪斯科六仙桌考察拉啊 數(shù)據(jù)庫(kù)的啊啊

    # re: OpenGL 2008-05-28 17:41 NONAME

    垃圾.抄襲!
    主站蜘蛛池模板: 精品国产免费一区二区| 最近的中文字幕大全免费8| 免费欧洲毛片A级视频无风险| 亚洲毛片免费观看| 亚洲黄色片免费看| 精品亚洲AV无码一区二区三区| 欧洲一级毛片免费| 亚洲狠狠成人综合网| 卡1卡2卡3卡4卡5免费视频| 亚洲av无码日韩av无码网站冲| AV免费网址在线观看| 中国china体内裑精亚洲日本| 成全视频免费高清 | 日日操夜夜操免费视频| 亚洲高清中文字幕免费| 国产精品国产自线拍免费软件| 自拍偷自拍亚洲精品偷一| 亚洲第一页日韩专区| 国产永久免费高清在线| 久久亚洲sm情趣捆绑调教| 人禽杂交18禁网站免费| 在线观看亚洲网站| 亚洲乱码中文字幕久久孕妇黑人| 少妇人妻偷人精品免费视频 | 一级女性全黄久久生活片免费| 亚洲情XO亚洲色XO无码| 精品福利一区二区三区免费视频| 亚洲精品女同中文字幕| 中文国产成人精品久久亚洲精品AⅤ无码精品| 美女视频黄的免费视频网页 | 亚洲二区在线视频| 免费观看国产精品| 性色午夜视频免费男人的天堂| 2020久久精品亚洲热综合一本| 亚洲?V无码成人精品区日韩| 国产精品免费福利久久| 日韩亚洲国产高清免费视频| 国产成人综合亚洲亚洲国产第一页| 永久在线免费观看| 一级做a毛片免费视频| 亚洲美女视频一区二区三区|