サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
fujita-y.hatenadiary.org
まずは簡単にトライアングルを1万枚ほどレンダリングするサンプルプログラムを作ってみましょう :D Xcode4のOpenGL ES Applicationテンプレートに以下の変更を行います。 == EAGLView.h @interface EAGLView : UIView { @private // The pixel dimensions of the CAEAGLLayer. GLint framebufferWidth; GLint framebufferHeight; // The OpenGL ES names for the framebuffer and renderbuffer used to render to this view. GLuint defaultFramebuffer, colorRenderbuffer; // @fujita-y 深度バッファ用定義
ここ半年ほど本業のピンボールゲームのiOS版を作っておりました。これは20年ほど前に開発したピンボールゲームを全面的に書き直したものです。 当時のコードもちゃんとありましたよ ;^) といっても使えそうなものは一行もないわけなのですが・・・これだけ時間が経ってから自分の書いたコードを見るというのは面白いものですね :p。新しいTristanはiOSということでObjective-Cを使って書くのですが、20年前のコードを見ながら(仕様をリバースエンジニアリングするため)「当時すでにObjective-CとNextStepがあったんだよな〜、継続は力なりってのはこのことか :D」などと考えておりました。 iOSのObjective-CはGCが使えないので書くのが少々面倒です。でもゲームの場合はGCでいきなり止まられるよりは遥かにいいです :) 一般アプリの場合にはRuby+Cocoa Tou
野田 開さんのご厚意によりPS3をSSH経由で提供して頂きました m(_ _)m 32bit/64bit対応でFFIもサポート済みですよ。 :) libspe2を使ったテストプログラムを作ってみました。 svn trunkのイプシロンをPS3に入れると動きます^^b #!/usr/bin/env ypsilon #!r6rs ;; ps3-cell-demo.scm ;; tested on PS3 Linux (import (rnrs) (only (core) system format iota) (ypsilon ffi) (ypsilon concurrent) (ypsilon cell libspe2)) (define spe-code " #include <stdio.h> int main(unsigned long long spe_id, unsigned lo
ネイティブコード生成についていろいろと考えていましたが、Tracing JITと呼ばれるものを試してみることにしました。 Tracing JITでポイントとなるのはインタープリタとコンパイル済みのコードの切り替えに起因するオーバヘッドかと思います。またYpsilonではConcurrent GCの性能を落としてはいけないという制約がありますのでなかなか難しいです。 でも、面白いことにConcurrent GCとTraicing JITが上手くかみ合うとネイティブコンパイラの性能を越えるケースも出てくるようです。 まず、Ikarusより速くなるという特別なケースを紹介しましょう。 (define map-1 (lambda (proc lst) (if (null? lst) '() (cons (proc (car lst)) (map-1 proc (cdr lst)))))) (def
FFIのテストのためにGoogle V8 JavaScript Engineを使って見ました。 まずhttp://code.google.com/apis/v8/build.htmlの説明に従ってlibv8.soを作ります。次にCで書いた簡単なスタブライブラリlibv8stub.soを作ります。これはV8はC++で書かれていてイプシロンから直接呼び出すことができないからです。 libv8stub.soを作るためのv8stub.cppのリストは以下のようになります。これはV8のsamples/shell.ccから必要な分を切り出しました。 /* v8stub.cpp -> libv8stub.so g++ -Iinclude v8stub.cpp -o libv8stub.so -shared -L. -lv8 -lpthread */ #include <v8.h> #include <s
イプシロンではMostly-Concurrent Mark & Sweep GCを実装しています。このアルゴリズムにつきましては、こちらのページの解説がわかりやすくてお勧めです。 http://www.nminoru.jp/~nminoru/java/cms/concurrent_mark_sweep.html イプシロンでの実装方法の解説を行う前に、GCで管理されているヒープの状態を見る方法を紹介しておきます。 起動直後のヒープをみる Ypsilon 0.9.6-trunk/r198 Copyright (c) 2008 Y.Fujita, LittleWing Company Limited. > (display-heap-statistics) |PPsossSOOOSsOSPOPOOPOOOP-OPPOOOOOOOOOOOOOOOPOOOOOOOOOOOOOOOOOOOO| |O
いろいろ実験したいこともあり、WordPressでブログを作りました。新しく作った方は、個人的な軽い話題をメインにする予定ですが、よろしければどうぞお越し下さい m(_ _)m Y.FUJITA::NOTEPAD Mac App StoreでPinball Tristanが承認されたのでpromo codeでダウンロードしてテスト。すると・・・ xpchelper reply message validation: sandbox creation failed: 1002 Code identity not in ACL for container ~/Library/Containers/com.littlewingpinball.Pinball-Tristan-OSX/Data (if this is a self-signed app, see asctl(1) for how t
このページを最初にブックマークしてみませんか?
『Y.FUJITA::NOTEPAD::YPSILON』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く