LoginSignup
8
6

More than 5 years have passed since last update.

1 / 10

sokol (Сокол) 1 とは

  • C言語で書かれた最小主義のヘッダーオンリーライブラリ2 (https://github.com/floooh/sokol) で以下で構成されてる
    • sokol_gfx 👈今回はこれにしぼります
    • sokol_time
    • sokol_audio
    • sokol_args
    • sokol_app

sokol_gfx

  • 3D API を抽象化したライブラリ
  • 以下に対応している
    • OpenGL (3.3 以降)
    • OpenGL ES 2/3 (WebGL 含む)
    • Metal
    • DirectX 11
  • sokol の中核

sokol_gfx の構成要素その1

  • sg_buffer
    • 頂点またはインデックスバッファ
  • sg_image
    • テクスチャとサンプラ兼用
  • sg_pass
    • レンダーターゲットまたはフレームバッファに相当

sokol_gfx の構成要素その2

  • sg_shader
    • 頂点またはピクセルシェーダ
  • sg_pipeline
    • 上記をまとめた描画設定単位

sokol_gfx 使うと何が良いの

  • 小さい
    • dylib で 100KB 弱 3
    • sokol の先駆者といえる bgfx は 1MB 以上 4
  • Vulkan ライクな検証レイヤーがある
    • 論理エラーの早期発見が容易
  • 独自のデバッガがある

独自のデバッガ #とは

  • 画像貼る

sokol_gfx の問題点

  • 日本語情報皆無
    • ぶっちゃけサンプル見れば使い方はほぼ把握できるとはいえ...
  • できたてなのでプロダクションの実績が薄い
    • Unity 内でのレクチャー教材 5 で使われたりはしてる


  1. ロシア語を英語表記したもので日本では「はやぶさ」を意味する 

  2. 詳しくは https://github.com/nothings/single_file_libs で 

  3. metal-osx-ninja-release でビルドした libsokol_gfx.a は 70KB 

  4. osx64_clang でビルドした libbgfx-shared-libRelease.dylib は 1.3MB 

  5. https://github.com/aras-p/dod-playground 

8
6
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
8
6