本文整理汇总了C++中Plugin::createPainter方法的典型用法代码示例。如果您正苦于以下问题:C++ Plugin::createPainter方法的具体用法?C++ Plugin::createPainter怎么用?C++ Plugin::createPainter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Plugin
的用法示例。
在下文中一共展示了Plugin::createPainter方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char * argv[])
{
QApplication app(argc, argv);
ResourceManager resourceManager;
resourceManager.addLoader(new QtTextureLoader());
resourceManager.addStorer(new QtTextureStorer());
// Initialize plugin manager
PluginManager::init(QCoreApplication::applicationFilePath().toStdString());
// Load example plugins
PluginManager pluginManager;
#ifdef NDEBUG
pluginManager.addPath("plugins");
#else
pluginManager.addPath("plugins/debug");
#endif
pluginManager.scan("painters");
// Choose a painter
std::string name = (argc > 1) ? argv[1] : "CubeScape";
std::cout << "Trying to create painter '" << name << "'\n";
gloperate::Painter * painter = nullptr;
Plugin * plugin = pluginManager.plugin(name);
if (!plugin)
{
globjects::fatal() << "Plugin '" << name << "' not found. Listing plugins found:";
pluginManager.printPlugins();
return 1;
}
painter = plugin->createPainter(resourceManager);
// Create OpenGL window
QSurfaceFormat format;
format.setVersion(3, 2);
format.setProfile(QSurfaceFormat::CoreProfile);
format.setDepthBufferSize(24);
QtOpenGLWindow * window = new QtOpenGLWindow(resourceManager, format);
window->setPainter(painter);
QRect rect = QApplication::desktop()->screenGeometry(); // used to center the mainwindow on desktop
// Create main window
QMainWindow mainWindow;
mainWindow.setGeometry((rect.width() - 1280) / 2, (rect.height() - 720) / 2, 1280, 720);
mainWindow.setCentralWidget(QWidget::createWindowContainer(window));
mainWindow.centralWidget()->setFocusPolicy(Qt::StrongFocus);
mainWindow.show();
return app.exec();
}