如何检索 Emscripten canvas 的 in-browser 大小?
How to retrieve in-browser size of Emscripten canvas?
我研究这个已经有一段时间了,但我似乎找不到如何实现它。
有一个标题非常明确的 emscripten_get_canvas_size,它与我期望的不同。实际的 Emscripten canvas 元素已设置为具有 100% 的宽度和高度,但是如果我通过 emscripten_get_canvas_size 检索宽度和高度,我只是简单地获取 GLFW [=33] 的宽度和高度=] 显示在 canvas 内,而不是 canvas 将其缩放到的实际尺寸。
我想获得浏览器中显示的实际 canvas 大小,以便我可以调用 glfwSetWindowSize 来缩放视口以填充整个浏览器 window。
即使我将 canvas 设置为 100x100px,emscripten_get_canvas_size 只有 returns 我在程序开始时通过 glfwSetWindowSize 设置的 1920x1080。
我可能遗漏了一些明显的东西,但是什么?
我对使用 Emscripten 进行 GUI 编程的知识为零,但您可以创建自己的函数来获得 HTML canvas 大小。例如:
// These are JavaScript code in C/C++ file
#include <emscripten.h>
EM_JS(int, canvas_get_width, (), {
return yourCanvasElement.width;
});
EM_JS(int, canvas_get_height, (), {
return yourCanvasElement.height;
});
// Then call
int width = canvas_get_width();
int height = canvas_get_height();
您可以在 the official document.
的 C/C++ 代码中学习如何创建 JS 代码
我研究这个已经有一段时间了,但我似乎找不到如何实现它。
有一个标题非常明确的 emscripten_get_canvas_size,它与我期望的不同。实际的 Emscripten canvas 元素已设置为具有 100% 的宽度和高度,但是如果我通过 emscripten_get_canvas_size 检索宽度和高度,我只是简单地获取 GLFW [=33] 的宽度和高度=] 显示在 canvas 内,而不是 canvas 将其缩放到的实际尺寸。
我想获得浏览器中显示的实际 canvas 大小,以便我可以调用 glfwSetWindowSize 来缩放视口以填充整个浏览器 window。
即使我将 canvas 设置为 100x100px,emscripten_get_canvas_size 只有 returns 我在程序开始时通过 glfwSetWindowSize 设置的 1920x1080。
我可能遗漏了一些明显的东西,但是什么?
我对使用 Emscripten 进行 GUI 编程的知识为零,但您可以创建自己的函数来获得 HTML canvas 大小。例如:
// These are JavaScript code in C/C++ file
#include <emscripten.h>
EM_JS(int, canvas_get_width, (), {
return yourCanvasElement.width;
});
EM_JS(int, canvas_get_height, (), {
return yourCanvasElement.height;
});
// Then call
int width = canvas_get_width();
int height = canvas_get_height();
您可以在 the official document.
的 C/C++ 代码中学习如何创建 JS 代码