この記事はQiitaに投稿されたものの転載です。
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
うまくいけばこんな感じの小さなウィンドウが出てくる。