PythonのOpenGLノート(1):ウィンドウキットGLFWのインストール

2756 ワード

GLFWはウィンドウキットです
  • GLFWをダウンロードします.それはhttp://www.glfw.org/download.htmlこのページでダウンロードします.
  • ダウンロードする圧縮ファイルglfw-3.2.1.bin.WIN32 (1).zipは私のフォルダに解凍し、D:OpenGLGlewフォルダglfw-3.2.1.bin.WIN32 (1)\glfw-3.2.1.bin.WIN32.
  • GLFWのライブラリファイルの場所を環境変数のpathに追加します.「マイコンピュータ」を右クリックして「プロパティ」を選択し、ウィンドウをポップアップし、「詳細システム設定」、「詳細」、「環境変数」、「編集」、「新規」の順にクリックし、D:OpenGLGlewフォルダglfw-3.2.1.bin.WIN32 (1)\glfw-3.2.1.bin.WIN 32lib-vc 2015フォルダを追加します.(注意:ここのディレクトリは、読者自身がダウンロードしたGLFWインストールディレクトリであるべきである.ディレクトリlib-vc 2015はライブラリファイルが存在するフォルダである).
  • パス設定が完了したら、pythonコンパイルソフトウェアを閉じて再開するには、pythonでGLFWを使用することができます.
  • 導入glfw>>import glfw
  • パッケージ表示ヘルプ>>help(glfw)
  • 実行例プログラムは、インポートglfw中の関数名がGLFWを持たないためsimple.pyの対応する関数はすべて対応する修正をして、実行結果とソースプログラムsimple.pyは、Python之OpenGL笔记(1):窗口工具包GLFW的安装_第1张图片
  • if __name__ == '__main__':
        import sys
        import glfw
        import OpenGL.GL as gl
    
        def on_key(window, key, scancode, action, mods):
            if key == glfw.KEY_ESCAPE and action == glfw.PRESS:
                glfw.set_window_should_close(window,1)
    
        # Initialize the library
        if not glfw.init():
            sys.exit()
    
        # Create a windowed mode window and its OpenGL context
        window = glfw.create_window(640, 480, "Hello World", None, None)
        if not window:
            glfw.terminate()
            sys.exit()
    
        # Make the window's context current
        glfw.make_context_current(window)
    
        # Install a key handler
        glfw.set_key_callback(window, on_key)
    
        # Loop until the user closes the window
        while not glfw.window_should_close(window):
            # Render here
            width, height = glfw.get_framebuffer_size(window)
            ratio = width / float(height)
            gl.glViewport(0, 0, width, height)
            gl.glClear(gl.GL_COLOR_BUFFER_BIT)
            gl.glMatrixMode(gl.GL_PROJECTION)
            gl.glLoadIdentity()
            gl.glOrtho(-ratio, ratio, -1, 1, 1, -1)
            gl.glMatrixMode(gl.GL_MODELVIEW)
            gl.glLoadIdentity()
            # gl.glRotatef(glfw.get_time() * 50, 0, 0, 1)
            gl.glBegin(gl.GL_TRIANGLES)
            gl.glColor3f(1, 0, 0)
            gl.glVertex3f(-0.6, -0.4, 0)
            gl.glColor3f(0, 1, 0)
            gl.glVertex3f(0.6, -0.4, 0)
            gl.glColor3f(0, 0, 1)
            gl.glVertex3f(0, 0.6, 0)
            gl.glEnd()
    
            # Swap front and back buffers
            glfw.swap_buffers(window)
    
            # Poll for and process events
            glfw.poll_events()
    
        glfw.terminate()