2008年08月25日

delphiをFreeBSDで動かしてみた。

まぁ、FreeBSDの導入作業も実質コンパイルの連続なのだが借り物コンパイルではある。
とりあえずブラウザ上でJavaScriptやFlashを使いサーバー上でperlやphpを使えば
右も左も分からなくても開発できるだろうと思っていたのだがwineという都合のいいものが整備されていて
Windowsバイナリーを透過実行できる時代になっていてFireFox+Flash等はそれで動作させるのが良いらしい。
となるとWindowsアプリの開発そのものはどうだろうか?
delphiをFreeBSD上で使ってMacを含むunix系OSとWInと両方で動くプログラムが作れるのではないか?
そう思い第一陣実験をやってみた。
それでどうした!......
ラベル:FreeBSD Delphi Wine
posted by Xo_ox at 16:28| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2008年09月12日

全面的にFreeBSDに開発環境を移す。

delphi+cpadという組み合わせで何か次の言語に向けて
脱delphiの前にdelphiでまとめようと思っていた。
それはdelphiが時代に適合できず汎用性のある効率の良いプログラムを作れないと感じていたからだ。
しかし今低スペックのPCで今までどうりにコンパイルできている。
そして特に速度ロスもなくFreeBSD上で動くしそのバイナリーそのままでWindowsでも動く
そういう環境になった。
ただ一部の関数が無いからWindows用でベストとFreeBSD用でベストは違う。
今回はその事実と現状確認できたことをここに記録しておこうと思う。
それでどうした!......
ラベル:Delphi FreeBSD
posted by Xo_ox at 23:30| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2008年09月13日

いまさら THE "Hello World"

効率よいアプリを作るにはGUIをdelphiでwin32APIで作るのが良いと思うが
呼び出すコマンドはUNIXのものの方が良いし
元々アセンブラ指向なわけだからバイナリーの最適化はしていいと思う。
とりあえずここで基本に立ち返ってUNIXでのプログラミングの為の基本を見直そうと思う。
MinGWでもお馴染みのGCCだ。
それでどうした!......
ラベル:gcc winegcc
posted by Xo_ox at 23:46| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2008年09月16日

Wineでoleloadtextureが使えた。

FreeBSD上のwineではolepro32.dllがないことから
使えないと思っていたのだが
defaultインストールだとそうなっているだけで
winecfgでライブラリーの追加でolepro32.dllをネイティブに加えることで使えた。
多分ijgとlibpngにスルーしているのだと思うのだが
Windows版と異なりPNGも使えた。
画像の処理プログラムを作るときわざわざ別のライブラリーを使わなくて良いということだ。

ちなみにgdi+やDirectInput、d3d10.dllの他d3dx9_37.dllあたりまである。それでどうした!......
ラベル:Wine oleloadtexture
posted by Xo_ox at 21:32| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2008年09月18日

Wineのbuiltin dllで玉砕

oleloadtextureがうまく動いたことに気をよくして
d3dx9_25.dll、hid.dll、dinput.dllあたりを設定して
Clootie のD3DXデモをやってみたら動かなかった。
但しdelphi側の問題かもしれない。
ネイティブなd3dx9_25.dllを置いたらちゃんと動いたので
やはりbuiltin dllの問題だと思う。
それでどうした!......
ラベル:Wine
posted by Xo_ox at 23:38| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2008年09月19日

FreeBSD上でのDirectInput

今日はなんとかFreeBSD上でジョイスティックを扱うヒントを得た。
前回全くダメだったのは愛用のsmartjoypad3がreport descriptorを返さず
uhidとして登録されなかったためだとわかり
たまたま手持ちのMS sidewinderdualstrikeが正しく認識され
それを使っていろいろとテストができたのからだ。

改めてビルトイン版のDirectInputを試してキーボードとマウスについてはうまく動いた。
またゲームパッドやっぱりDirectInputでは読み取れないようだ。
それでどうした!......
ラベル:DirectInput Wine
posted by Xo_ox at 22:40| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年02月19日

ジョイスティックを使えるようにする。その1 SDLで

ジョイスティックを使えるようにするというのは
別にSDLのアプリで使うということではなくwineやJavaを初め
joystick未対応なソフトでジョイスティックを使える様にしたいという発想からだ。
SDLでのjoystick使用はシンプルな方法で可能でありパフォーマンスも高かったので
無理にローレベルな関数を使わなくても応用範囲は広そうだ。
それでどうした!......
ラベル:SDL Joystick
posted by Xo_ox at 23:41| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年02月25日

SDL上のcairoでまたしてもHello World

標準的な描画ライブラリーの模索をしていたのだが
速度面に若干の不安があるもののcairoを使ってみた。
cairoと言えばgtk+だがSDLでやってみた。
cairoの描画ルーチンが自己完結型ということもあり
ほとんど何も考えずに使うことができた。今回のコードは割とクロスプラットフォームな感じだ。
なんか永遠に初心者という感じではある。
それでどうした!......
ラベル:SDL cairo
posted by Xo_ox at 23:10| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年02月26日

CでImageMagickを使ってみる。

今までImageMagickはperlmagickとコマンドラインツールしか使っていなかったのだが
CでもMagickCoreとMagickWandというライブラリが使える様だ。
SDLと言えばsdl_imageとsdl_gfxだができることが微妙であり
コマンドラインツールのついたImageMagickを前提とした方が良いと感じた。
しかしいろんなライブラリーを詰め込んだせいもあるのか
ImageMagickは最適化コンパイルした状態でも効率的な印象は受けない。
あまり深入りしないで画像系アプリの立ち上げだけに使いたいと思った。
それでどうした!......
ラベル:MagickWand
posted by Xo_ox at 23:00| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年03月01日

glib-2.0を使ってみる。

glib-2.0を使ってみた。
参考となるサイトとしては現時点でのマニュアルの載っている
GLib Reference Manual

ちょっとふるいが和訳されている
Glibリファレンスマニュアル
そしてヘッダーファイルを参考にした。
結構実装がごちゃついているのでシンプルな関数と実装が複雑な関数のみ使うのが良さそうだ。
それでどうした!......
ラベル:GLib
posted by Xo_ox at 23:32| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年03月03日

GTKでタスクトレイアプリって奴の可能性をみる。

先だってdelphiでタスクトレイの関数を触ったところ
xfceのタスクトレイで普通に動作した。wine32恐るべし
xlibかGTKにもありそうだと思って探したら
http://library.gnome.org/devel/gtk/stable/GtkStatusIcon.html
にGtkStatusIconというのがあった。
簡単に低リソースのGUIを作ることができた。
それでどうした!......
posted by Xo_ox at 23:52| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年03月25日

Curlでpercent-encodeしてみる。

日本語とかFlashのパラメータとかasciiで使えないところで使われるエスケープ処理
web-safe-base64のがいいと思うんだけれど
特にUTF-8だと無駄だらけだとは思うがよく使われている。
自前でくんでもよさそうだがざっと探したところ
汎用性のあるライブラリーでcurlで使えるようだ。
curlはクッキー処理やフォームのポストなども出来るライブラリーだが
グローバルな関数は案外と少ない。最近割とよく使われているライブラリーではないかと思う。
それでどうした!......
ラベル:Curl percent-encode
posted by Xo_ox at 21:59| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年03月27日

djpegでSDL_Surfaceにjpegを読み込む

imlib2やgdk_pixbuf等をみた後だと
SDLはクロスプラットフォームだし使用リソースは少ないし
画像の配列ポインタを渡してくれるので柔軟にものを作れそうだと感じた。
今回はpopenを使ってIJGライブラリーについてくるdjpegを使って
jpegを読み込んでみた。
それでどうした!......
ラベル:SDL popen 画像
posted by Xo_ox at 23:57| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年03月30日

libjpegでメモリー上のjpegファイルを読み込む

delphiのTjpegよりは内部を触れる感じのAPIを使えると思ったのだが
大間違いで妙にメンバーが多い割に基本的には提供された大雑把な関数しか使えない。
Tjpegはむしろよくまとめていたということになる。
最たるものは入出力でメモリーから呼び出すためにはソースのjpeg_stdio_destをベースに
メモリー用の関数を作って登録と面倒な手間をかけないといけない様だ。
但しこれはUNIX限定の話であってWindowsの場合はjpeg_stdio_destのままでかまわない。
なぜならWindowsの場合はFILEというのはリソースストリームの「handle」の種類に過ぎず
OSの手続きで作ったメモリーストリームハンドルが使えるからだ。

そしていまだに「windowsではijgを使うしかない」と勘違いしている人もいる様だが
Windowsの場合jpeg読み込みはOleLoadPictureというolepro32由来の関数が使えるので
小規模プログラムの場合ijgライブラリーをあえて使う理由は無い。

そんな事を考えながらも今回はjdatasrc.cをjmemsrc.cに変更して
メモリーないのjpegデータからsdlに展開してみた。
それでどうした!......
ラベル:libjpeg SDL 画像
posted by Xo_ox at 23:44| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年03月31日

libjpegでSDL_SurfaceのSDL_Rectをセーブする。

jpegのセーブに関しては苦労してまでメモリに保存する需要はあまりない。
但しココログを考慮してexifをくっつけたいところではある。
そんなことを視野に入れつつ今回はとりあえず標準的なAPIでのセーブを行った。

先日のロードとは異なりSDL_Surface直接ではなく
1ラインずつを全SDL_Surfaceでなく任意の矩形を選択した。
メモリーの無駄は多分にあるが妥協できる線だ。
それでどうした!......
ラベル:SDL 画像 libjpeg
posted by Xo_ox at 23:59| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月01日

libjpegでデジカメの写真を編集した後にexifを戻すの基本。

jpegtranが独自のコーディングでなくlibjpeg依存であれば
exifタグを残したままロスレス変換できるわけで編集後のファイルにも
元のデータのexifタグをつけられるのではないかと思いやってみた。
何気に脱MagickWandな内容になってきた。
それでどうした!......
ラベル:libjpeg 画像
posted by Xo_ox at 23:26| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月02日

exifタグのstrip

前回はココログにアップすることを前提にexifをキープして再編集したが
逆に単にexifを取りたいこともある。ファイルのパースをすればいいだけなのだが
libjpegを使ってできるのでやってみた。
参考になるのはやはりjpegtran.cだ。

jpegtran.cをみるとロスレス変形はライブラリーでなくてtransupp.cというローカルモジュールに依存している様だ。
特にGPLとかでもないようなのでIJGベースだとライセンスをつければ公開などは無難で
transupp.cの部分コピーを使えなくもないがロスレス回転とか微妙に半端で長いコードなので
jpeglibだけで後日自前で組むとして今回はexifタグのstripだけやってみた。
それでどうした!......
ラベル:libjpeg 画像
posted by Xo_ox at 19:59| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月04日

cairoへのjpegload、思わぬ落とし穴。

WindowフレームワークとしてのxlibかSDL
描画フレームワークとしてのcairoそしてSDLとOpenGL
簡便な画像ライブラリーとしてのlibjpeg
だんだんツールもみえてきたところでcairoでjpeg画像の加工をしてみようと思った。
しかし今回思わぬ落とし穴があった。cairoはビッグエンディアンだったのだ。
ブロック転送はできない。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 23:20| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月06日

cairo_surfaceの通常時とpng使用時の開放の不思議

どうもcairoのサンプルはあまり無いようだし興味のある人も少ないようだが
それなりのパフォーマンスと結果が期待できるので本格的に使っていこうと思う。
昨日、とりあえずjpegをcairoで扱うことが出来たのだが
pngを読む場合と割り当てる場合で同様の開放方法であり正しかったのかどうか
メモリーの確保と開放がどうにも不明瞭だったので再確認し元データの反映のタイミングを確認した。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 23:59| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする

2009年04月07日

cairoでの画像のやりとりと透明度

メモリコンテキストにcairo_surface_tを割り当てることにより
cairo以外の手段で透明度も含めて操作した内容が反映されたpngを保存できるようになった。
注意点はBGRAになる点とデータがアルファをもつ点で
libjpegを使って読み込んだ画像も表示・png保存できた。
それでどうした!......
ラベル:cairo
posted by Xo_ox at 22:42| Comment(0) | クロスプラットフォーム | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。