powered by hsp3dishw.js / OpenHSP
// HSPスクリプト: mes_test5
#include "hsp3dish.as"
*main
redraw 0 : rgbcolor $000080 : boxf : pos 0,0
rgbcolor $00FFFF : mes "あいうえお"
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy
rgbcolor $00FFFF : mes " あいうえお"
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy
rgbcolor $00FFFF : mes "あ いうえお"
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy
rgbcolor $00FFFF : mes "あ いうえお"
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy
rgbcolor $00FFFF : mes "abcdefghijklmnopqrstuvwxyz"
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy+" (g j p q y 等が欠ける環境がある)"
rgbcolor $00FFFF : mes "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy+""
rgbcolor $00FFFF : mes ""
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy+{" (「mes ""」は文字高さにフォントサイズが返るβ9も同じ)"}
rgbcolor $00FFFF : mes "1234567890"
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy+""
rgbcolor $00FFFF : mes "記号_、。#$%&()!?_,.#$%&()!?"
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy+" (。やアンダーバー等も欠ける環境がある)"
rgbcolor $00FFFF : mes "gjpqyM,;*^|\\ぁゎぴぽ齋鬱鑑龍馨驚|"
rgbcolor $FFFFFF : mes "↑ ginfo _mesx="+ginfo_mesx+" / _mesy="+ginfo_mesy
redraw 1
await 33
goto *main
/*
// hsp3dishw.js の変更
// <上側のEM_ASM_内の変更>
const context = canvas.getContext("2d");
context.font = $1 + "px sans-serif";
if (typeof window.useActualBoundingBox === "undefined") {
const msgABB = 'gjpqyM,;*^|\ぁゎぴぽ齋鬱鑑龍馨驚|';
window.metricsABB = context.measureText(msgABB);
if ((window.metricsABB.fontBoundingBoxAscent + window.metricsABB.fontBoundingBoxDescent) >= (window.metricsABB.actualBoundingBoxAscent + window.metricsABB.actualBoundingBoxDescent)){
window.useActualBoundingBox = false;
} else {
window.useActualBoundingBox = true;
}
}
const msg = UTF8ToString($0);
const metrics = context.measureText(msg);
HEAP32[$2 >> 2] = Math.max(metrics.width, metrics.actualBoundingBoxLeft + metrics.actualBoundingBoxRight) | 0;
if (!window.useActualBoundingBox) {
HEAP32[$3 >> 2] = (metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent) | 0;
} else {
HEAP32[$3 >> 2] = Math.ceil(window.metricsABB.actualBoundingBoxAscent + window.metricsABB.actualBoundingBoxDescent);
}
// <下側のEM_ASM_内の変更>
context.font = $1+"px sans-serif";
:
:
if (typeof window.useActualBoundingBox === "undefined" || !window.useActualBoundingBox) {
context.fillText(msg, 0, metrics.fontBoundingBoxAscent);
} else {
context.fillText(msg, 0, window.metricsABB.actualBoundingBoxAscent);
}
*/