如何检索Emscripten画布的浏览器内尺寸?

时间:2018-12-12 22:18:05

标签: emscripten

我已经研究了一段时间了,但我似乎找不到解决方法。

有一个非常清晰的标题emscripten_get_canvas_size,它没有实现我期望的功能。实际的Emscripten canvas元素已设置为100%的宽度和高度,但是如果我通过emscripten_get_canvas_size检索宽度和高度,我只是获得在画布内部显示的GLFW窗口的宽度和高度,而不是画布缩放到的实际尺寸。

我想获取浏览器中显示的实际画布大小,以便可以调用glfwSetWindowSize来缩放视口以填充整个浏览器窗口。

即使将画布设置为100x100px,emscripten_get_canvas_size也只会返回我在程序开始时通过glfwSetWindowSize设置的1920x1080。

我可能缺少明显的东西,但是呢?

1 个答案:

答案 0 :(得分:1)

我对使用Emscripten进行GUI编程的知识为零,但是您可以使自己的函数获得HTML画布大小。例如:

// 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代码。