LoginSignup
1
1

More than 5 years have passed since last update.

OpenGL/GLFWはじめての人がD言語でウィンドウを表示するまで

Last updated at Posted at 2016-06-28

DでOpenGLとかそういうのが使いたくなったので練習をした。

Dubを使って環境構築した記事がなかなか見つからなかったのでまとめ記事を書く。

Ubuntu 16.04 LTS。

OpenGLとGLFWの導入

OpenGL
$sudo apt install mesa-utils

GLFW
$sudo apt install xorg-dev
$git clone https://github.com/glfw/glfw.git
$cd glfw

ここで共有ライブラリを作るようにCMakeLists.txtを書き換える。

でないと実行時にこうなる。

エラー
libglfw3.so - libglfw3.so: cannot open shared object file: No such file or directory
libglfw.so.3 - libglfw.so.3: cannot open shared object file: No such file or directory
CMakeLists.txt
-option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
+option(BUILD_SHARED_LIBS "Build shared libraries" ON)
$cmake .
$make
$sudo make install
-- Installing: /usr/local/lib/libglfw.so.3
-- Installing: /usr/local/lib/libglfw.so

プロジェクトを作る

$dub init PROJECTNAME derelict-gl3 derelict-glfw3

以前は一つのリポジトリにすべてが入っていたようだが、今はバラになっていた。

テスト

参考元

source/app.d
import derelict.opengl3.gl;
import derelict.glfw3.glfw3;

void main()
{
    //Derelictの初期化。この下からOpenGLやGLFWのいろいろが使えるようになる。
    DerelictGL.load();
    DerelictGLFW3.load();

    glfwInit();

    GLFWwindow *window = glfwCreateWindow(100, 100, "test", null, null);

    glfwMakeContextCurrent(window);

    while(!glfwWindowShouldClose(window))
    {
        glClear(GL_COLOR_BUFFER_BIT);

        glEnd();
        glfwSwapBuffers(window);

        glfwPollEvents();
    }

    glfwTerminate();
}

$dub run

gltest.png

うまくいけばこんな感じの小さなウィンドウが出てくる。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1