TWGL で gl.DYNAMIC_DRAW をいつ指定するのかわからなかったが判明。 これでマウス位置に追従する線を引けるようになる。

twgl.setAttributePrefix("a_");
const programInfo = twgl.createProgramInfo(gl, [vs, fs]);
const positions = new Array(8); // 2D rectangle
const arrays = {
    position: {
        numComponents: 2,
        data: new Float32Array(positions),
    },
};
const bufferInfo = twgl.createBufferInfoFromArrays(gl, arrays);
bufferInfo.attribs.a_position.drawType = gl.DYNAMIC_DRAW;
const vao = twgl.createVAOFromBufferInfo(
    gl, programInfo.attribSetters, bufferInfo);

// (...modify positions...)

// assuming positions has already been updated with new data.
twgl.setAttribInfoBufferFromArray(
    gl, bufferInfo.attribs.a_position, positions);

矩形の描線を破線にするのは旧 OpenGL と違って少し手間がかかりそうだ。明日にする。

YouTube で BPL のチャンネルが誕生していたことに気づく。

2:40 消灯。就寝。

7:05 起床。納豆と米を食う。やはりこの組み合わせが最強だ。出勤。

7:45 現場。ゴミ出しがない。明日の仕込みをする。館内下層階の床を掃除機で吸い取る。 外の床のカビがまだ残っているので取る。

10:05 撤収。

イトーヨーカドー曳舟店。体温チェック。

曳舟の部屋。手を洗って昼寝。疲れがひどく、眠り続けたい。

15:30 起床。PC を開く。おやつ。

16:10 外出。歯を磨くのを忘れていた。引き返して歯を磨く。改めて外出。

押上駅。電車に乗って小川町駅に移動。万世橋経由で中央通りへ。

17:00 秋葉原 HEY 二階と三階を行ったり来たりしてゲームをやりまくる。

ゲーム クレジット 結果
イルベロ 4 今年一番の不出来
ノスフェラトゥ 3 2-6 の正攻法を模索
ビートマニア 1 STEP UP モードで茶を濁す

20:20 退店。小川町駅へ移動。東日本橋駅でもたつきつつも押上駅まで移動。 駅を出て水戸街道へ向かう。

21:25 コモディイイダ東向島店。477 円。腹いっぱい食える。

  • いなりとざるそば
  • 豚ヒレカツ (5)
  • さっくり食パン

曳舟の部屋。排便。入浴。

22:10 風呂から出る。晩飯を食いつつ PC を開く。写真編集。

テザリングを入れてメールチェック。いつも世話になっている事業所から着信アリ。 エントリー依頼。支援がほんとうに手厚い。

22:55 歯を磨く。WebGL コードの破線を描くところから再開。 その前に座標系をマウス位置をそのまま使えるように gluOrtho2D と同じ座標変換でわかりやすくする。 このマウス操作での矩形選択をクラスにカプセル化しよう。