从C++XPCOM代码中在画布上绘制
Draw on canvas from within C++ XPCOM code
是否可以从C++XPCOM插件中提取元素?以前(可能很久以前)可以获得nsIDOMCanvasRenderingContext2D接口的对象,并使用ti的方法PutImageData_explicit在画布上绘制图像。如今,nsIDOMCanvasRenderingContext2D隐藏了一切,我不知道如何实现这一点。
一般来说,有没有一种方法可以通过在网页上添加插件来渲染视频(比如说从远程主机获得的视频)?
如有任何建议,我们将不胜感激。感谢
现在有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和堆损坏的粉丝;)
相关文章:
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- SFML 文本未绘制在窗口上
- 如何在快板的屏幕中显示子位图的绘制?
- 如何绘制自定义形状的元素?
- QPainter 将 QBrush 设置为 在 QT/C++ 中绘制文本
- 除非重新绘制大小,否则SDL_Texture在调整大小后呈现黑色
- 绘制文本问题
- 在 QT C++中绘制/操作多边形
- 如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件"sin.txt",另一个文件"cos.txt",我想将它们分别绘制在一个图表上
- 在现代OpenGL中,绘制GL_TRIANGLE奇怪的z轴行为的填充圆
- OpenGL 着色器不绘制任何东西 - 糟糕的精灵类
- 从C++XPCOM代码中在画布上绘制