我正在努力获取gtkmm3 Gtk::OffscreenWindow
以便在开罗表面上进行渲染。正确的方法是什么?
我有一个从WidgetRenderer
派生的类,我叫Gtk::DrawingArea
。我有一个来自DrawingArea
的类,渲染了称为DrawManager
的最后一个Glib::Refptr
。使用Gdk::Pixbuf
指向WidgetRenderer.get_pixbuf()
并使用Gtk::OffscreenWindow
我尝试将Gtk::Application.run(WidgetRenderer)
更改为标准窗口,并直接尝试使用WidgetRenderer::WidgetRenderer() :
title("Label")
{
add(title);
show_all_children();
show();
}
运行Solus 4.0并与存储库一起打包最新版本。
WidgetRenderer的构造函数:
MyArea::MyArea() : testNode()
{
testNode.show();
std::cout << testNode.get_width() << std::endl;
m_image = testNode.get_pixbuf();
}
DrawManager的构造函数:
bool MyArea::on_draw(const Cairo::RefPtr<Cairo::Context> &cr)
{
Gtk::Allocation allocation = get_allocation();
const int width = allocation.get_width();
const int height = allocation.get_height();
Gdk::Cairo::set_source_pixbuf(cr, m_image, 200, 200);
cr->paint();
return true;
}
DrawManager的on_draw函数:
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv);
Gtk::Window win;
win.set_title("Test");
//win.set_default_size(200, 200);
DrawManager area;
win.add(area);
area.show();
return app->run(win);
主要功能:
label
应该发生的是应该在窗口中打印标签**sample api configuration**
<api xmlns="http://ws.apache.org/ns/synapse" name="api" context="/api-context">
<resource methods="POST GET">
<inSequence>
<log level="full">
<property name="Message" value="Before transformation"/>
</log>
<script language="py" key="conf:/repository/script/stockquoteTransformResponse.py" function="transformRequest"/>
<log level="full">
<property name="Message" value="After transformation"/>
</log>
<respond/>
</inSequence>
</resource>
</api>
。相反,我得到了白屏。