| クロスブリッジ | |
|---|---|
| その他の名前 | プロジェクト・アルケミー |
| 開発者 | アドビシステムズ |
| 初回リリース | 2008 (2008) |
| リポジトリ | |
| ライセンス | オープンソース |
| Webサイト | adobe-flash |
CrossBridgeはAdobe Systemsが開発したオープンソースのツールセットで、CおよびC++コードをクロスコンパイルしてAdobe Flash PlayerまたはAdobe AIRで実行できます。[ 1 ] CrossBridgeでコンパイルされたプロジェクトは、 ActionScript 3プロジェクトよりも最大10倍高速に実行されます。 [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] CrossBridgeは「Alchemy」や「Flash Runtime C++ Compiler」(FlasCC)とも呼ばれていました。[ 7 ] [ 8 ] [ 9 ]
CrossBridgeは、Flash Playerの高性能メモリアクセスオペコード(「ドメインメモリ」と呼ばれる)を使用して、メモリ内データを高速に処理します。[ 10 ] CrossBridgeは、 LLVMとGCCをコンパイラバックエンドとして使用し、C++コードをコンパイル、最適化し、AVM2(ActionScript仮想マシン2)内で実行できるように変換します。CrossBridgeで構築されたプログラムは、通常のActionScriptコードよりも最大10倍高速ですが、[ 4 ] [ 5 ] [ 6 ]ネイティブC++コードよりも最大2倍から10倍遅くなります。[ 11 ]
CrossBridgeは、Flash Playerムービー( .swfファイル)またはFlashライブラリ(.swcファイル)を生成できます。これらのファイルは、ActionScript 3で記述され、無料のApache Flex SDK(旧Adobe Flex SDK)を使用してコンパイルされた、より大規模なプロジェクトで使用できます。CrossBridgeは、Flash Player 11に搭載されているGPUベースの3Dレンダリングアクセラレーション(Stage3D )も利用します。[ 12 ]
AdobeはCrossBridgeを利用してOpenGLをFlash Player Stage3D内で使用できるように移植し、2012年にオープンソースプロジェクトとしてリリースしました。[ 13 ] Luaプログラミング言語(バージョン5.1)もCrossBridgeを使用してFlash Playerで実行できるように移植され、Google Codeでリリースされました。[ 14 ] CrossBridgeでコンパイルされたプロジェクトでは、高速フーリエ変換やメキシカンハットウェーブレット変換などのクライアント側デジタル信号処理をリアルタイムで実行することも可能になりました。 [ 15 ]
歴史
2008年、AdobeはCrossBridgeを「Project Alchemy」としてAdobe Labsウェブサイトでリリースしました。これにより、LLVMおよびGCCコンパイラを用いて、特別に修正されたC++プロジェクトをSWFにコンパイルすることが可能になりました。[ 7 ]
2012年、AdobeはFlash Playerの収益化を図るため、Flash PlayerのStage3Dおよびドメインメモリ機能の使用を「プレミアム機能」ブランドで制限しました。「プレミアム機能」は使用許諾されており、パブリッシャーはAdobeに使用料を支払うことになっていました。[ 16 ] Project AlchemyはFlashランタイムC++コンパイラとして商用リリースされました。[ 9 ]
2013年、AdobeはFlashランタイムC++コンパイラをCrossBridgeとしてオープンソース化し、GitHubコードホスティングウェブサイトで公開しました。[ 17 ]「プレミアム機能」も無料で利用できるようになり、ライセンスやロイヤリティは不要になりました。[ 18 ]
参照
- asm.js
- エムスクリプトン
- Google ネイティブ クライアント(NaCl)
- WebAssembly – ブラウザ向けに開発中のバイトコード
参考文献
- ^ AdobeのCrossBridge、 GitHub
- ^ “Alchemy:FAQ” . 2012年5月5日時点のオリジナルよりアーカイブ。2012年5月5日閲覧。Adobe Labs、「ASC は現時点ではほとんど最適化を実行しません」
- ^ Zotov, Peter (2012年5月6日). 「Adobeの愚かさの限界に達する - whitespace」 . Whitequark.org. 2012年10月15日時点のオリジナルよりアーカイブ。 2012年10月27日閲覧。
- ^ a b Alchemy:FAQ Archived May 5, 2012, at the Wayback Machine , Adobe Labs
- ^ a b LLVMを使用したActionScriptバイトコードの最適化、Adobe
- ^ a b Adobe AlchemyはActionScriptの異端か? 2012年8月19日アーカイブ、Wayback Machine、Unit Zero One
- ^ a b AlchemyがLabsでリリースされました、Adobe Blogs、2008年11月17日
- ^ Alchemy アップデートが Labs でリリースされました、Adobe Blogs、2008 年 12 月 11 日
- ^ a bプロジェクト「Alchemy」がFlashランタイムC++コンパイラ(FlasCC)に、Adobe Blogs、2012年10月8日
- ^ Flash Player用FlasCC、Adobe Gaming、2013年5月25日アーカイブ、 Wayback Machine
- ^ Alchemy Archived 2020-10-04 at the Wayback Machine , Adobe Labs
- ^ XC API、Adobe Gaming、2013年4月25日アーカイブ、 Wayback Machine
- ^ OpenGL for Stage3D、GitHubプロジェクトホスティング
- ^ lua-alchemy、Alchemy を使用した ActionScript 用の Lua プログラミング言語の移植、Google Code
- ^ AVM2におけるリアルタイムピッチ検出、Temptonik、2015年1月
- ^ Flash Playerのプレミアム機能Archived 2014-07-19 at the Wayback Machine、Adobe Flash Team Blog、Adobe
- ^オープンソースの Flash C++ コンパイラ、CrossBridge、Wayback Machineに 2014 年 3 月 25 日にアーカイブ、Adobe Blogs、2013 年 6 月 25 日
- ^ Adobe Flash Player のプレミアム機能、Adobe Devnet