Как получить в браузере размер Emscripten canvas? - PullRequest
0 голосов
/ 13 декабря 2018

Я уже давно об этом и не могу понять, как этого добиться.

Существует очень четко названный emscripten_get_canvas_size, который не делает то, что я ожидалсделать.Фактический элемент Emscripten canvas имеет ширину и высоту 100%, но если я получу ширину и высоту через emscripten_get_canvas_size, я просто получу ширину и высоту окна GLFW, которое отображается внутри холста, а нефактические размеры того, к чему масштабировал холст.

Я хотел бы получить фактический размер холста, как показано в браузере, чтобы я мог вызвать glfwSetWindowSize для масштабирования области просмотра, чтобы заполнить весь браузерwindow.

Даже если я установлю холст равным 100x100px, emscripten_get_canvas_size вернет только 1920x1080, которые я установил через glfwSetWindowSize в начале программы.

Я, вероятно, отсутствуетчто-то очевидное, но что?

1 Ответ

0 голосов
/ 13 декабря 2018

У меня нулевые знания в программировании с использованием Emscripten, но вы можете создавать свои собственные функции, чтобы получить размер 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();

Вы можете узнать, как создавать JS-коды в коде C / C ++ в официальном документе .

...