видео — Рисование на холсте из кода C ++ XPCOM

Можно ли нарисовать элемент из дополнения C ++ XPCOM?
Ранее (возможно, очень давно) можно было получить объект интерфейса nsIDOMCanvasRenderingContext2D и использовать метод PutImageData_explicit от ti, чтобы нарисовать изображение на холсте. В настоящее время nsIDOMCanvasRenderingContext2D скрывает все, и я понятия не имею, как этого добиться.

В общем, есть ли способ визуализации видео (скажем, полученного с удаленного хоста) с помощью надстройки на веб-странице?

Любой совет будет оценен.
Спасибо

0

Решение

Есть PutImageData_explicit сейчас. Но это защищенный член.

  • Вы можете обмануть систему и нарушить инкапсуляцию для своих целей, например, путем вывода и понижения (и теперь защищенные участники все ваши).
  • Или сделать это трудным путем, и использовать PutImageData при этом возиться с ImageData а также ErrorResult,

Даункастинг, чтобы попасть к защищенному участнику:

#include <string>
#include <iostream>

class Base {
protected:
std::string myName() {
return "Base";
}
};
class Derived : public Base {
public:
std::string myName() {
return Base::myName();
}
};

int main() {
Base *base = new Base();
Derived* derived = static_cast<Derived*>(base);
std::cout << derived->myName() << std::endl;
delete base;
return 0;
}

PS: это работает, потому что это все еще верно sizeof(Base) == sizeof(Derived), Вы действительно не хотите изменять размер, например добавив членов данных или что-то подобное, если вы не фанат segfault и повреждения кучи;)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]