Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
自作 OS の GUI 開発のためのメモ

自作 OS の GUI 開発のためのメモ

この記事は、自作OS Advent Calendar 2017の 12/6 の記事として書かれました。

主に、ライブラリや仕様書のダウンロード・サイトやリポジトリなどの URL を集めてみました。この他の URL は、以下でブックマークを公開していますので、興味がある方は参照してみてください。

なお、本稿では C ではなく C++ で書かれたライブラリも含まれていますが、必要なら C で書き直したり、C で新規開発したりする必要があると考えています。プロジェクトで採用できないライセンスのライブラリしかない場合も、C で新規開発する必要が生じてきます。

書籍

和書だと参考になる書籍は少ないです。日本国内の事情としては、基盤となる技術というのは作ることよりも利用することがほとんどで、作っている人は海外の英文情報を参照しているからだと思われます。

GUI ライブラリ

組み込み向けなどのコンパクトな GUI ライブラリの存在は確認したものの、HiDPI(4K などの高解像度)への対応が可能なのかは未確認です。新規開発が必要になるかもしれません。また、HTML のレンダリングは別途、検討したいと考えています。

Desktop Entry Specification

EditorConfig

文字コード

文字コードの検出・変換・Unicode 関連の処理を行うライブラリです。

フォント

フォントと、フォントを描画するライブラリです。

レイアウトエンジン

日本語組版についての文書や、Unicode 文書のレイアウトを処理するライブラリです。

文書ファイル

LibreOffice の文書ファイルの仕様書です。

PDF

Web ブラウザ・ベンダの公開しているライブラリです。

PDF.js(Mozilla)

PDFium(Google)

画像

HEIF はロイヤリティの支払いが困難なため、除外しています。

JPEG

Exif

libexif のライセンスがプロジェクトに適していない場合には、JEITA の仕様書を参照して、独自に実装する方法を採用することが出来ると思います。

PNG

IE や Edge で APNG に対応していないため、APNG への対応方法は未調査です。

GIF

SVG

JIS X 4197:2012 は SVG Tiny の仕様書です。SVG ではありません。ご注意ください。

Canvas

Favicon

音声

AAC は、ロイヤリティの支払いが困難なため、除外しています。

WAV

Ogg Vorbis, WebM Vorbis

Ogg Opus, WebM Opus

FLAC

MP3

特許切れの報道は確認したものの、利用可能なライブラリは未調査です。

動画

H.264 や HEVC はロイヤリティの支払いが困難なため、除外しています。

Cisco Systems がロイヤリティを OSS 開発者に代わって支払ってくれるという OpenH264 は以下のような情報もあり、採用する場合は機能が不足していないか、確認が必要だと思います。

Ogg Theora

WebM VP8/VP9

WebM AV1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment