non vorrei lavorare

2020年度からの小学校プログラミング教育の必修化を親として迎えるブロガーの書く、子供との日常

Canvas#getContextを2回呼ぶと

おはようございます。長男は肉は最近でこそ食べるようになりましたが、次男は肉食のようで、父の日に義父と近所の焼肉屋へ行ったら、バクバク肉を食べてました。@kjunichiです。

 

Canvas#getContextを複数回呼んだら

ちょっと前に、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が使えることが分かった。

 

まとめ

関連記事

 

10年前の記事

4年後の記事