読者です 読者をやめる 読者になる 読者になる

chikuchikugonzalezの雑記帳

趣味とか日記とかメモとか(∩゚д゚)

RubyのC拡張で配置newを使うためのマクロ考えた

RixILっていうRixmap公開用っていう位置づけのRuby C拡張書いてるわけなんですが、C++で書いてるせいで後からnewでインスタンス作る実装が必要になったしまったわけです。 その場合メモリが足りない場合にRubyのNoMemoryErrorを出したいという欲求が出まして…

Ruby 2.0.0 (RubyInstaller) + DevKit (mingw32 4.7.2) でハマったこと

自前のC拡張 (C++使ってる) をビルドして動くかなー( ^ω^)ワクワク とかやってたんですが見事にはまったので誰かタスケテ なにがあったのか とりあえず環境はこんなの Ruby 2.0.0 (patchlevel 353) RubyInstallerで入れた DevKit (mingw32 4.7.2) RubyInstal…

Ruby2.0 (RubyInstaller版)で自前のC拡張がビルドできなかった問題について

まず結論から言うと、 RubyのC拡張をC++で書くとハマるぞ-( ゚д゚) C++を使ってさらにC++0xとか使おうとするときは-std=c++0xじゃなくて-std=gnu++0xじゃないとハマるぞ-( ゚д゚) です。 前提として次の環境でした。 Ruby2.0.0p0 (RubyInstaller版 32bit) DevK…

メモ化を使った自作画像処理ライブラリでのメモリ削減試行

Rixmapなんていう画像処理ライブラリ作ってるわけなんですが、Rixmap::Colorクラスという色を表すクラスがメモリ食いなんで、メモ化 (参考:blog.pasberth.com: Ruby: newを再定義してインスタンスをメモ化)とかいうのを使って同じ色は同じオブジェクトを使…

ビットマップ画像ライブラリ (Ruby) を書いた

セルフ車輪の再発明やらかした chiku2gonzalez / Rixmap — Bitbucket いえね、時分のやろうとしてることが Rake使いたい Rakeのタスクとして画像を弄るライブラリが必要 ないので作ろうか だったので、Rubyで実装したほうが早いという結論になったわけです。

ビットマップ画像ライブラリ (C++) を書いた

頑張ったよ自分(´・ω・`) とりあえず https://bitbucket.org/chiku2gonzalez/libpixmap で公開しておきました。 書いた理由は、 趣味でRubyから画像を扱いたくなった RubyでPIL (Python Imaging Library) のようなのがなかった なのでRubyで作るか の準備と…

PCXファイルフォーマットのメモ書き

忘れないようにするためのメモっぽいなにかです。とりあえずわかったこと RLE圧縮がデフォルト というより、非圧縮のPCXは仕様外っぽい RLE圧縮は『行単位』で実施 全ピクセルデータをまとめてRLE圧縮しない まとめて圧縮するとソフトウェアによっては表示不…

JNIを使ったJavaプログラムをCygwinのGCJでexe化した時のメモ

まぁ、まずはJNIから JavaにはJNIっていう、メソッドをC/C++で書ける機能があります *1。 例えば次のようにmainすらnative化出来たりしますね public class HelloWorld { static { System.loadLibrary("hw"); } public static native void main(String[] arg…

ウィンドウを表示するだけのコード

なんとなくメモ的ななにか。 Java系 Javaの場合 public class WindowJava { public static void main(String[] args) { javax.swing.JFrame win = new javax.swing.JFrame(); win.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); win…

PythonからDXライブラリを使ってみる

たまには技術屋っぽい事も書いておかないと、とか思って最近やってることについて書くなど。とある方の手伝いで真面目にDirectX触らないといけない自体になりまして*1。 とりあえず楽できそうなDXライブラリに手を出してみみました。が、C/C++な時点でPHPに…

printf/sprintfフォーマット指定子でフィールド幅を可変にする方法

まさかMUGEN関係の記事を見てて新たな知恵を得ようとは。それもC言語的な方面の。発端はdrab氏 (でいいのかな) の%nの記事で、 4.フィールド幅、精度 既に、メモリエディタさえ用意すれば%nを使えるようになったはずですが、ここでは%nを利用する上での小…

(s)printfフォーマット指定子について

C/C++カテゴリとMUGENカテゴリが同じ記事につくとは1年前は思いもしなかったが、MUGENのデバッグ出力がsprintfフォーマットなんだからしかたあるまい。 で以前MUGENのsprintfフォーマットを調べたわけですが (RC6でDisplayToClipboardに使えないフォーマット…