2010-01-01から1年間の記事一覧

テーマ見にくいかも。

変えようかな。

gl.processing進捗

hsb形式での色の指定のサポートとpixelsを作成するための便利な関数の作成。 そろそろモジュールの階層関係や関数の定義位置などを見直した方が良いかもしれない。 手軽にpixelsを作成する関数を作成 pixels-generator。 こういうものが簡単に作れるようにな…

anything-multi-occur.elというものを書いてみました。

anything-occurでバッファ中のoccurをanythingで引けるのだけれど、複数のバッファを行き来して作業しているときなどに「どのバッファに書かれているかわからないけれど、どこかのバッファにあるということが分かっている。」というような状況で一度に複数の…

増減できるカウンタの作成

久しぶりにscheme自体で遊んでみました。ふと、オブジェクトの状態に対するアクセサを多値で返すという風にしていくとどうなるだろうと思ったのでやってみました。 クロージャの利用 よくクロージャの実例としてカウンタの作成が引き合いにだされます。 例え…

gauche-packageを利用したgaucheの拡張モジュールの作り方

この記事で作ったモジュールのリポジトリはgithubにあります。http://github.com/podhmo/gauche-perlinnoise はじめに gaucheにはschemeで書かれたモジュールの他にCで書かれた拡張モジュールがあります。 拡張モジュールを作る足場を作るためのツールが実は…

拡張モジュールの作り方を説明しようと思います。

gaucheの拡張モジュールの作り方を調べていてわかったことなどをまとめようと思います。 まとめようと思った理由は、ネット上で見つかる拡張モジュールの作成のためのドキュメントが難しいという印象を受けたからでした。 Gauche:拡張ライブラリ入門 Cで書く…

openglのblendについて

glBlendFuncに渡す引数の数が多すぎて把握しきれていない。 glのコードをラッピングはしていないけれど、とりあえずblendingもできるということで。 code (use gl.processing) (with-simple-draw (200 200) (blend-info) (background 0 0 0) (gl-enable GL_B…

マルチテクスチャについて

意外と簡単でした。(もっとオプションが色々あるのかもしれませんが) draw-mixed-shapeで2つのtextureを混ぜ合わせて表示できます。 まだオプションの部分に直接GL_REPLACEなどのglの引数を直接与えていますが、いずれ:typeA :replaceなどにしようと思いま…

マルチバイト文字にも対応しました。

ただしUTF-8限定。行った方法が正しいのか分からないので行った方法を記しておく。 表示されるサイズの大きさの計算 string-lengthとstring-sizeを使った。 (string-length "aあ") ; => 2 (string-size "aあ") ; => 4 string-lengthは文字数をstring-sizeは…

座標系によるtextureの上下反転について

textureは座標系によっては上下が反転してしまうことがあるみたい。 例えば、このようなコードを書いてデフォルトの座標系で画像を表示した際には、上下が正しく表示される。 (use gl.processing) (define texture #f) (define draw (draw-once$ (^ () (with…

無事複数枚の画像が表示できました。

前々からテクスチャを読み込む機能は加えていたのだけれど、なぜか2枚のテクスチャを生成した際には 2枚目のテクスチャが表示されないので困ってました。今日テクスチャを3枚にしてみたら、2枚目までが表示されていました… というわけで、バグが取れたので無…

glのフォントを表示する機能をprocessing-likeなAPIで包んでみました。

http://processing.org/reference/text_.html に書いてあるチュートリアルと同様の結果になるようにしてみました。 でも、まだ透明度とz座標による表示順序を考慮していないです。 あと、glのpixelsのままでtextureではないのでrotateなどが効かないとおもい…

processingの簡易な記述をgl.processingにも(with-simple-draw)

processingはdrawとsetupを書かなくても実行できたりする。こんな感じに。 processing size(400, 400); // The wrong way to specify the middle of the screen ellipse(200, 200, 50, 50); // Always the middle, no matter how the size() line changes el…

gl.processingでの座標系について

標準ではprocessingと同様に左上隅が(0,0)、xの増加は右方向、yの増加は下方向の座標系。 http://processing.org/learning/drawing/setup$にoptionを付けることで座標系を変換できる。 (use gl.processing) (define draw (draw$ (^ () (fill 0 0 0) (ellipse…

processingと似たようなマウス入力の機能を追加した。

processingのgetting startedのexample2.2と同様なものができるようになった。 実行結果例(これはProcessingのサイトの画像) code 右クリックで描いた円を消去するのも加えている。 ;; Getting Started \ Processing.org http://processing.org/learning/get…

[opengl[scheme]画像に保存する機能をオプションに持たせるか悩む。

実行時の画面を画像ファイルとして保存できると便利。 画像の読み込み(load-image)書き出し(save-image)の際には、imlib2の機能を利用している。 今までは画像を保存する際にはこのように書いていた。 (use graphics.imlib2) (define draw (draw-once$ (lamb…

gl.processingの環境を揃えるのに必要なもの

実行(できそうな)コードと結果だけを書かれても、読んでいる人は何のことだか分からないかもしれないので、 もう少し説明を加えることにする。 この日記はたぶん、「gauche-gl-processing(gl.processing」というscheme処理系のGaucheで利用できるライブラ…

日本語を表示できるようにした。

quesoglを利用した。利用できるフォントは locate -r "\\.afm$" で見つかるものたちみたい。これを見つけるのに苦労した。 code まだ整形していないので汚いけれど。 (extend gl.processing) (use gauche.uvector) (use graphics.imlib2) (use gl.glc) (defi…

openglで日本語表示

QuesoGLC:http://quesoglc.sourceforge.net/ ubuntu sudo aptitude install libglc0 libglc-dev

画像保存時のバグを修正

修正した。

とりあえずこーどだけでもはっておく

glbooks/example8-2.scmを参考に code ;; Example 8-2 Drawing a Complete Font ;;(use gauche.experimental.lamb) (add-load-path "..") (use graphics.imlib2) (use gl.processing) (define draw (draw-once$ (lambda () (fill 0.7 0.7 0) (rect 10 10 100…

今作っているソフトウェア

http://github.com/podhmo/gauche-gl-processing 概要 名前は適切ではないかもしれないけれど、今のところは"gauche-gl-processing"という名前で呼んでいる。 githubにコードを載せている。(ただし、見るに値するほどのものじゃない。今のところ) 名前の由来…

blogを書き始めてみる。

id:podhmoでblogを始めてみることにしました。 したいこと 今作っているソフトウェアについて文章で記述する。 gauche-glを使いやすいようにwrappingしてprocessingのような自分にとってのsketch-toolを作っている。 先週から少しずつ手をいれていたのだけれ…