ゆとりーなの日記

日記的な事を書いて行くと思はれる

windows版が完成してもいないのにLinuxに移植開始してみた

制作中のngy313ライブラリですが、何を血迷ったかLinuxに移植するという無謀な挑戦を始めました。
取り敢えず成果です。

#include <ngy313/process/process.hpp>
#include <ngy313/window/window.hpp>
#include <ngy313/graphic/graphic.hpp>
#include <ngy313/graphic/scoped_render.hpp>
#include <ngy313/graphic/box.hpp>
#include <ngy313/utility/color_code.hpp>

int main() {
  ngy313::window::set_caption("試験窓");
  return ngy313::process::run([] {
    {
      const ngy313::graphic::scoped_render render;
      if (render.succeeded()) {
        ngy313::graphic::clear_screen(ngy313::utility::kBlack);
        ngy313::graphic::draw(ngy313::graphic::box(160.f, 120.f, 320.f, 240.f));
       }
    }
    ngy313::graphic::present();
  });
}

出力

まだ内部で手抜いてたりするので完全ではありませんが、大体windows版と同じ構文で同じことが出来る感じです。両方の環境である程度最適な構文を採用する雰囲気なのでまたまたインターフェイスと仕様が若干変わるかもしれません。
ちなみに今のところそれぞれの環境では

プラットフォーム windows linux
対応コンパイラ VC++2010 g++4.5.1
依存ライブラリ boost,DirectX,oggsdk boost,gtkglextmm,OpenAL,oggsdk

みたいな感じにするような気でいます。今更ですけど、OpenALってLGPLだったんですね。