旧 #temanote

Linux大好き。だけど進捗ありません。

紬ちゃんマスコット 〜Linux / Gtkmm編 part.2〜

前回はこちら
temama.hatenablog.com

やっと開発環境が整った感じです(今更



非矩形ウィンドウまでの道のり

当初思い描いていたほど簡単ではなかった。
前回のエントリでNaMACHANさんから教えて頂いた資料から何をすればいいのか漠然と推測したものの、全くわからない。

Twitterでぼやいていると


情報をいただいた。

これのおかげで自分で組んだソースもコンパイル通るようになった。
仕組みはよくわからないがRefPtrすげぇ!ってなった。

役に立った資料
d.hatena.ne.jp
すごいたくさんまとまってる。便利。

http://www.iim.cs.tut.ac.jp/~sugaya/books/GUI-ApplicationProgramming/files/GTK-book-chapter6.pdf
Cairoの仕組みをまとめたPDF。わかりやすい。
もっと早くCairoの仕組み調べてればもっと楽だった…

Surface、Context、Path、Sourceで構成されるようだ。
今まで自分で色々やったがうまく行かないのはGtkのウィンドウのDrawable?に出力されていたからのようだ。

ようやく写経したソースの全体像が見えてきた。
あとは試しながら少しずつ組めば何とかなりそう。



(少し早い)結論

久々に再開しようとGtkmmで非句形ウィンドウの情報を集めていたらこんな記事に当たった
stackoverflow.com
(Google検索4件目。なぜいままで読まなかった)

Cairo and GTK+ are not directly relevant with shaped windows.

アッハイ

つまりはGtkmmから直接的に非句形ウィンドウを作るのはできないらしく、GDKを使えばできる(ただしC言語)。

デスクトップマスコット開発の目的にちゃっかりC++の理解も入ってたので残念。
というわけでGtkmm編、完。


C++っぽく扱えるグラフィックライブラリで非句形ウィンドウが扱えるものが見当たらない。
流石にそろそろ限界なのでC言語でもいいから作ってしまいたい。

そこで目を付けたのが、非句形ウィンドウで調べてたらちょくちょく見るSDL
どうやら2.0の新機能に非句形ウィンドウがあり、それでよくヒットするっぽさ。


これでやろう。
どうせCならあとでGTK+GDKでも作ろう。

C++の理解のために競プロとか始めてみようかとも思い始める今日このごろ。