C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

HTMLという文書とCanvasとかWebGLとかそういうのについての随筆

今回は随筆みたいなものなので興味の無い方は流して於いて下さいね・w・;
Facebookに書こうと思ったんだけどちょっとだけ長くなりそうだったのでブログにしました。


そういえば、HTMLとかCSSとかでごちゃごちゃやるよりも先にVC++とかDirectXなんかでゲーム作ったりして遊んでたがゆえか、私はCSSのposition:absoluteを知った時からそれがずっと好き。

* {
  position:absolute;
  display:block;
  margin:0;
  padding:0;
  overflow:hidden;
}

こんな感じがデフォルトの世界で、何か表示したいものがあれば矩形なりポリゴンなりとそのsurfaceと、それから準備しておきたいものがあるならどこか別のバッファーなり表示用のバッファーを表示サイズピッタリよりも大きく確保しておいてユーザーに見えないところにレンダリングしておくとか、そういうのが当たり前だったから、WEBでもそうやりたかった。でもそういった文章の電子表示の為には低レベル過ぎると当初思われていたであろう機能はHTMLでは実装されても邪道な何かという印象がHTMLのコードを書くのをお仕事にしている様な人達には根強い、という印象がある。実際その手の現場でabsoluteを使うと、あまり良い顔をされなかった経験もある。

まあ、実際の所は多くのウェブサイトは文書であるから必ずしもposition:absoluteが効率が良いかと言えばそんなわけはないのだが、とかく情報量は少なくてデザインどどーんってサイトとか実は多いじゃない、しかも元はPhotoshopのラスターデータでデザインしてたりする事も多い。そんなのposition:absoluteでガチガチにそのまま組んじゃえばいいじゃないって思ってたんだけどね。そりゃまあブラウザによって実装がバグってた時期もあったはずだけど^^;

いやいやIllustratorでデザインしてますって?アスペクト比の異なる出力や単純な拡大と縮小ではない変化も含めてIllustratorでデザインしてるわけじゃなければこの話に限ってはPhotoshopでデザインしてるのと意味は変わらない。

さてまあ、それは本題ではなくて、にゅっと(=now)、今はHTML5というものになりつつある。この中にはCanvasとかWebGLというものが含まれているけど、それらは例えばSVGの様に単独でレンダリング可能な専用の何かではなくて、HTMLというDOMを持ったいつもながらのそれの内部での話なんだ。はてさて…、確かに文書と文書ではない可視化要素が融合するのは素晴らしい表現効果を齎すものである事に間違いは無いのだが、ふと思った事がある。なぜ、CanvasやWebGLという仕組みはDOMの内部でのみ効果を発揮する仕様なのだろうか、と。hoge.jsとかってファイルがあったら、それを直接に最も単純なHTMLのDOM構造を省略してその.jsをscriptで読み込んだものとして実行できる仕様もあっても良かったのではないかな、と。

なんか前の記事で書いた辺りにつながってきた・w・;

さてさて、随筆やってる暇ではないので迷宮作らないと今日が終わってしまう。