vecterion_vge 17.07 release works



GladeとGtkバージョン

gladeによるポトペタなGUI作成を導入したのですが、これにWindows版公式ビルド最新版より新しいバージョンのGTKが必要とのこと。

===
 debug: et_etaion_set_application_base_dir_from_execute_path()[126]: dir:'..'
critical: init_gtk_builder_()[2740]: Couldn't load document_new_dialog_builder file: ./resource/ui/document_new_dialog.glade: required gtk+ version 3.12, current version is 3.10

===


ビルド済みGTKライブラリの取得

officialの最新版は 3.10.4-20131202 までしか提供されていないので、unofficialなバイナリを使用することに。
使い勝手の問題からofficialに近いパッケージを探して、https://twitter.com/niloufarjp/ 氏の配布してくださっている配布パッケージを、下記スクリプトで全解凍&フォルダ統合済みに再パッケージ。
https://github.com/MichinariNukazawa/vecterion_vge/blob/master/deploy/win/gtk_library/gtk_library_repackage.sh

loaders.cache, libpixbufloader-svg.dll

libpixbufloader-svg.dll を使うにあたって loaders.cache が無いから gdk-pixbuf-query-loaders.exeを呼び出して作れ、と親切なエラーメッセージなのでそれに従いファイルを作成。
===
(vecterion_vge.exe:8124): GdkPixbuf-WARNING **: Cannot open pixbuf loader module file 'C:\Users\nuka\Documents\vecterion_vge-win64-17.07develop-11c2ada\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > C:\Users\nuka\Documents\vecterion_vge-win64-17.07develop-11c2ada\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache
to make things work again for the time being.
===

下の、古い設定ファイルをコピーしてきても動いたけれど、念のため生成版に置き換え。
===古い版
# GdkPixbuf Image Loader Modules file
# Automatically generated file, do not edit
# Created by gdk-pixbuf-query-loaders.exe from gdk-pixbuf-2.30.1
#
# LoaderDir = Z:\srv\win32builder\fixed_3104\build\win32/lib/gdk-pixbuf-2.0/2.10.0/loaders
#
"lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.dll"
"svg" 2 "gdk-pixbuf" "Scalable Vector Graphics" "LGPL"
"image/svg+xml" "image/svg" "image/svg-xml" "image/vnd.adobe.svg+xml" "text/xml-svg" "image/svg+xml-compressed" ""
"svg" "svgz" "svg.gz" ""
" <svg" "*    " 100
" <!DOCTYPE svg" "*             " 100
 

 
===

===生成版
# GdkPixbuf Image Loader Modules file
# Automatically generated file, do not edit
# Created by gdk-pixbuf-query-loaders.exe from gdk-pixbuf-2.36.6
#
# LoaderDir = C:\Users\nuka\Documents\vecterion_vge-win64-17.07develop-11c2ada/lib/gdk-pixbuf-2.0/2.10.0/loaders
#
"GDK_PIXBUF_TOPLEVEL/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.dll"
"svg" 6 "gdk-pixbuf" "Scalable Vector Graphics" "LGPL"
"image/svg+xml" "image/svg" "image/svg-xml" "image/vnd.adobe.svg+xml" "text/xml-svg" "image/svg+xml-compressed" ""
"svg" "svgz" "svg.gz" ""
" <svg" "*    " 100
" <!DOCTYPE svg" "*             " 100
 

===

足りないアイコンファイルの追加

===
 (vecterion_vge.exe:8156): Gtk-WARNING **: Could not find the icon 'window-minimize-symbolic-ltr'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
    http://icon-theme.freedesktop.org/releases

===
===
(vecterion_vge.exe:8156): Gtk-WARNING **: Could not load a pixbuf from /org/gtk/libgtk/icons/16x16/status/image-missing.png.
This may indicate that pixbuf loaders or the mime database could not be found. 

===

今回の場合、 https://github.com/Beep6581/RawTherapee/issues/3046 に書いてあるキャッシュの更新はしなくても、上記警告まではとりあえず解決して消える。

===
(vecterion_vge.exe:6744): Gtk-WARNING **: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
**

===

===
**
Gtk:ERROR:gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
===

share/icons 以下のアイコンファイルが足りないだけなので、これをすべて配布パッケージに追加。

CSS font: monotype; の警告

===
(vecterion_vge.exe:3652): Gtk-WARNING **: Theme parsing error: <data>:23:9: not a number

(vecterion_vge.exe:3652): Gtk-WARNING **: Theme parsing error: <data>:23:18: Using Pango syntax for the font: style property is deprecated; please use CSS syntax
===
CSS syntaxに合わせろとのことなので、font-familyに書き換えて解決。
===
 626 >------->------->-------"GtkStatusbar {\n"¬
 627 >------->------->-------"   font-family: monospace;\n"¬
 628 >------->------->-------"}\n"¬

===


CSS 'px'の警告


===
(vecterion_vge.exe:3652): Gtk-WARNING **: Theme parsing error: <data>:20:16: Not using units is deprecated. Assuming 'px'.
===

単位のつけ忘れだった。

===
 629 >------->------->-------"GtkTextView {\n"¬
 630 >------->------->-------"   font-family: monospace;\n"¬
 631 >------->------->-------"   font-size: 12px;\n"¬
 632 >------->------->-------"}\n"¬

===

.glade ダイアログ -rdynamic の警告

 .gladeファイルによるUIを使用していると出る。
===
(vecterion_vge.exe:7444): Gtk-WARNING **: Could not find signal handler 'cb_clicked_button_cancel_'.  Did you compile with -rdynamic?

(vecterion_vge.exe:7444): Gtk-WARNING **: Could not find signal handler 'cb_clicked_button_ok_'.  Did you compile with -rdynamic?

===
.gladeファイル読み込みの際に、 gtk_builder_connect_signals(); を呼んでいたが、OK,Cancelボタンの標準的なコールバック(gtk_dialog_run()から戻り値でACCEPT/その他が返ってくる)には必要なかったので、これを除去すると消えた。

ビルドオプションは今は追う必要がないので、追っていない。以下はメモ。
警告メッセージは `-dynamic`を付けろと言っているが、 実際は` -Wl,--export-dynamic`かもしれない。
ただし、これも、Windows版(mingw)では以下の警告が出た。
===
/usr/bin/x86_64-w64-mingw32-ld: warning: --export-dynamic is not supported for PE+ targets, did you mean --export-all-symbols?
===

gtk_file_chooser_dialog 呼び出し時のクラッシュ

gschemas.compiled が必要だった模様。



dev版パッケージの内で、下記のような感じでコマンドを実行すると生成することができる。
(たぶん、 環境変数 GSETTINGS_SCHEMA_DIR の指定はいらない。)
```
bin\glib-compile-schemas.exe share\glib-2.0\schemas 
```
同じパスに、この gschemas.compiled ファイルを配置すると解決。

Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換する

 Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換することができるが、上手く変換されない場合がある。   以前作った魔法陣イラスト素材をイラスト素材ストックサイトへ登録しようと思い立ち、改めて素材用にラスタライズ変換をかけようとした。   ラスタライズ変換...