本文整理汇总了C++中PluginManager::addSearchPath方法的典型用法代码示例。如果您正苦于以下问题:C++ PluginManager::addSearchPath方法的具体用法?C++ PluginManager::addSearchPath怎么用?C++ PluginManager::addSearchPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PluginManager
的用法示例。
在下文中一共展示了PluginManager::addSearchPath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char * argv[])
{
QApplication app(argc, argv);
ResourceManager resourceManager;
resourceManager.addLoader(new QtTextureLoader());
resourceManager.addStorer(new QtTextureStorer());
PluginManager pluginManager;
pluginManager.addSearchPath(QCoreApplication::applicationDirPath().toStdString());
pluginManager.addSearchPath(QCoreApplication::applicationDirPath().toStdString() + "/plugins");
#ifdef NDEBUG
pluginManager.scan("painters");
#else
pluginManager.scan("paintersd");
#endif
// Choose a painter
std::unique_ptr<gloperate::Painter> painter(nullptr);
std::string name = (argc > 1) ? argv[1] : "PostprocessingPipeline";
Plugin * plugin = pluginManager.plugin(name);
if (!plugin)
{
globjects::fatal() << "Plugin '" << name << "' not found. Listing plugins found:";
pluginManager.printPlugins();
return 1;
}
AbstractPainterPlugin * painterPlugin = dynamic_cast<AbstractPainterPlugin *>(plugin);
if (!painterPlugin)
{
globjects::fatal() << "Plugin '" << name << "' is not a painter plugin.";
return 1;
}
painter.reset(painterPlugin->createPainter(resourceManager));
// Create Event Provider
QtKeyEventProvider * keyProvider = new QtKeyEventProvider();
QtMouseEventProvider * mouseProvider = new QtMouseEventProvider();
QtWheelEventProvider * wheelProvider = new QtWheelEventProvider();
// Create OpenGL window
QSurfaceFormat format;
format.setVersion(3, 2);
format.setProfile(QSurfaceFormat::CoreProfile);
format.setDepthBufferSize(16);
QtOpenGLWindow * window = new QtOpenGLWindow(resourceManager, format);
window->setPainter(painter.get());
window->installEventFilter(keyProvider);
window->installEventFilter(mouseProvider);
window->installEventFilter(wheelProvider);
// Create Mapping
QtViewerMapping * mapping = new QtViewerMapping(window);
mapping->setPainter(painter.get());
mapping->addProvider(keyProvider);
mapping->addProvider(mouseProvider);
mapping->addProvider(wheelProvider);
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();
}