Canvas#getContextを複数回呼んだら
なるほど、Atom.ioでは素のjsもrequire越しに使えるのかぁ / “background-matrix/lib at master · danzimm/background-matrix · GitHub” http://t.co/NuEasigGPL
— kjunichi (@kjunichi) 2014, 6月 11
ちょっと前に、Atomエディタのプラグインをそろそろ作りはじめようと、調べたら、background-matrixなるモジュールを見かけ、ちょうどビジュアル系なプラグインを作りたかったので、大いに参考になりそうだということで、
atom ~/.atom/packages/background-matrix/
で、プラグインのコードをAtomエディタで開き、lib/matrix.jsの
ctx = c.getContext("2d"),
を
ctx = c.getContext("2d"), ctx2 = c.getContext("webgl"),
と、書き換え、WebGLを試したら、ctx2はnull。
ああ、Atom ShellはWebGL対応したが、Atomエディタはまだなのかぁ。とあきらめモードが入ってきたのでしたが、もしかして、Canvas#getContextって複数回というか、2dとwebglを一つのcanvasに対して呼べない疑惑を思いつき、 WebGLのシェーダーをあれこれいじるで試したら、ビンゴ!
ということで、animation-showcaseのthreejs-examples-view.coffeeを
#@renderer = new THREE.CanvasRenderer() @renderer = new THREE.WebGLRenderer()
と、変更して、警告の嵐になりつつもAtomエディタでWebGLが使えることが分かった。
まとめ
関連記事