static ABAdminPlugin * tryLoadPlugin( const QString & path )
{
	QLibrary library(path);
	abadmin_plugin_instance_fn func = (abadmin_plugin_instance_fn)library.resolve( "abadmin_plugin_instance" );
	if( func )
		return func();
}
示例#2
0
int main() {

	PRINT("This example loads dictionaries from the EDS library.");

	std::unordered_map<kaco::Address, kaco::Entry> dictionary;
	std::unordered_map<std::string, kaco::Address> name_to_address;
	kaco::EDSLibrary library(dictionary, name_to_address);
	bool success = library.lookup_library();

	if (!success) {
		ERROR("EDS library not found.");
		return EXIT_FAILURE;
	}

	success = library.load_default_eds(402);
	if (!success) {
		ERROR("load_default_eds(402) failed.");
	} else {
		print_dictionary(dictionary);
	}

	// This should fail.
	dictionary.clear();
	name_to_address.clear();
	success = library.load_default_eds(405);
	if (!success) {
		ERROR("load_default_eds(405) failed.");
	} else {
		print_dictionary(dictionary);
	}

	return EXIT_SUCCESS;

}
ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString& pluginName,
                                                           const QString& desktopEntryName,
                                                           QWidget* parent) :
    KDialog(parent),
    m_configurationWidget(0),
    m_previewPlugin(0)
{
    QLibrary library(desktopEntryName);
    if (library.load()) {
        newCreator create = (newCreator)library.resolve("new_creator");
        if (create) {
            m_previewPlugin = dynamic_cast<ThumbCreator*>(create());
        }
    }

    setCaption(i18nc("@title:window", "Configure Preview for %1", pluginName));
    setMinimumWidth(400);
    setButtons(Ok | Cancel);
    setDefaultButton(Ok);

    QWidget* mainWidget = new QWidget(this);
    mainWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
    QVBoxLayout* layout = new QVBoxLayout(mainWidget);
    if (m_previewPlugin) {
        m_configurationWidget = m_previewPlugin->createConfigurationWidget();
        layout->addWidget(m_configurationWidget);
    }
    layout->addStretch(1);

    setMainWidget(mainWidget);

    connect(this, SIGNAL(okClicked()), this, SLOT(slotOk()));
}
示例#4
0
QRegion QRegion::fromHIShapeRef(HIShapeRef shape)
{
    QRegion returnRegion;
    returnRegion.detach();
    // Begin gratuitous #if-defery
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
# ifndef Q_WS_MAC64
    if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_5) {
# endif
        HIShapeEnumerate(shape, kHIShapeParseFromTopLeft, shape2QRegionHelper, &returnRegion);
# ifndef Q_WS_MAC64
    } else
# endif
#endif
    {
#if !defined(Q_WS_MAC64) && !defined(QT_MAC_USE_COCOA)
        if (ptrHIShapeGetAsQDRgn == 0) {
            QLibrary library(QLatin1String("/System/Library/Frameworks/Carbon.framework/Carbon"));
            library.setLoadHints(QLibrary::ExportExternalSymbolsHint);
                    ptrHIShapeGetAsQDRgn = reinterpret_cast<PtrHIShapeGetAsQDRgn>(library.resolve("HIShapeGetAsQDRgn"));
        }
        RgnHandle rgn = qt_mac_get_rgn();
        ptrHIShapeGetAsQDRgn(shape, rgn);
        returnRegion = QRegion::fromQDRgn(rgn);
        qt_mac_dispose_rgn(rgn);
#endif
    }
    return returnRegion;
}
示例#5
0
void ShaderDialog::installShaderParameters(int)
{
   ShaderLibrary& library(ShaderLibrary::instance());
   QString name(m_dialog.shaderCombo->currentText());
   library.setUniformVariables(name, getParameters());
   updated();
}
示例#6
0
Pothos::Util::CompilerArgs Pothos::Util::CompilerArgs::defaultDevEnv(void)
{
    Pothos::Util::CompilerArgs args;

    //add devel environment libraries
    Poco::Path path(Pothos::System::getPothosDevLibraryPath());
    std::vector<std::string> files; Poco::File(path).list(files);
    for (size_t i = 0; i < files.size(); i++)
    {
        Poco::Path library(path, files[i]);
        if ((
            library.getExtension() == "so" or
            library.getExtension() == "lib" or
            library.getExtension() == "dylib"
        ) and
        (
            files[i].find("Poco") != std::string::npos or
            files[i].find("Pothos") != std::string::npos
        )) args.libraries.push_back(library.absolute().toString());
    }

    //add devel environment includes
    args.includes.push_back(Pothos::System::getPothosDevIncludePath());

    return args;
}
示例#7
0
ShaderDialog::ShaderDialog(QWidget* parent) : QDialog(parent)
{
   m_dialog.setupUi(this);
   m_labels[0]  = m_dialog.label0;
   m_labels[1]  = m_dialog.label1;
   m_labels[2]  = m_dialog.label2;
   m_labels[3]  = m_dialog.label3;
   m_sliders[0] = m_dialog.slider0;
   m_sliders[1] = m_dialog.slider1;
   m_sliders[2] = m_dialog.slider2;
   m_sliders[3] = m_dialog.slider3;
   m_checkBoxes[0] = m_dialog.checkBox0;
   m_checkBoxes[1] = m_dialog.checkBox1;

   for (int i = 0; i < s_maxSliders; ++i) {
       connect(m_sliders[i], SIGNAL(valueChanged(int)), 
          this, SLOT(installShaderParameters(int)));
   }
   for (int i = 0; i < s_maxCheckBoxes; ++i) {
       connect(m_checkBoxes[i], SIGNAL(stateChanged(int)), 
          this, SLOT(installShaderParameters(int)));
   }

   ShaderLibrary& library(ShaderLibrary::instance());
   QStringList shaderNames(library.availableShaders());
   m_dialog.shaderCombo->addItems(shaderNames);

   hideOptionControls();
   int index(m_dialog.shaderCombo->findText(Preferences::DefaultShader()));
   if (index >= 0) {
      m_dialog.shaderCombo->setCurrentIndex(index);
      on_shaderCombo_currentIndexChanged(index);
   }
}
// -------------------------------------------------------------------------- //
//
void Test_ScalarDistributionData::testInitNotifyAccept()
{
    // Read a library.
    Library library("./testfiles/testlibSmall");

    // Construct with the normal constructor.
    const std::string scalar_name("VP-Volume");
    const std::string ref_path("./testfiles/vvol_ref.data");
    const double sigma = 0.093;
    const int pos = 1;
    ScalarDistributionData sdd(scalar_name, ref_path, sigma, pos);

    // Setup a small sampleset.
    std::vector<int> sampleset(10);
    sampleset[0] =  7;
    sampleset[1] =  9;
    sampleset[2] = 13;
    sampleset[3] = 27;
    sampleset[4] = 28;
    sampleset[5] = 29;
    sampleset[6] = 43;
    sampleset[7] = 53;
    sampleset[8] = 56;
    sampleset[9] = 57;

    // Call init.
    sdd.init(sampleset, library);

    // Check that the data was correctly set.
    CPPUNIT_ASSERT_EQUAL( 10, sdd.nsample_ );
    const double chi2 = 16.79464613935;
    CPPUNIT_ASSERT_DOUBLES_EQUAL( chi2, sdd.chi2_, 1.0e-10 );

    // Check a few values.
    CPPUNIT_ASSERT_DOUBLES_EQUAL( sdd.distribution_[1] , 0.1, 1.0e-12 );
    CPPUNIT_ASSERT_DOUBLES_EQUAL( sdd.distribution_[26], 0.2, 1.0e-12 );
    CPPUNIT_ASSERT_DOUBLES_EQUAL( sdd.distribution_[86], 0.1, 1.0e-12 );

    // Call notify.
    const int from_sample = 29;
    const int from_basis  = 34;
    sdd.notify(from_sample, from_basis, library);

    // Check chi2 and chi2_new.
    const double chi2_new = 16.7499785124567;
    CPPUNIT_ASSERT_DOUBLES_EQUAL( chi2_new, sdd.chi2_new_, 1.0e-8 );
    CPPUNIT_ASSERT_DOUBLES_EQUAL( chi2,     sdd.chi2_,     1.0e-8 );

    // Call accept.
    sdd.accept();

    // Check that chi2 was set.
    CPPUNIT_ASSERT_DOUBLES_EQUAL( chi2_new, sdd.chi2_, 1.0e-10 );

    // Check that the curve was set.
    for (size_t i = 0; i < sdd.distribution_.size(); ++i)
    {
        CPPUNIT_ASSERT_DOUBLES_EQUAL( sdd.distribution_[i], sdd.distribution_new_[i], 1.0e-12 );
    }
}
示例#9
0
static void initializeGtk(QLibrary* module = 0)
{
    // Ensures missing Gtk initialization in some versions of Adobe's flash player
    // plugin do not cause crashes. See BR# 40567, 44324, and 44405 for details.  
    if (module) {
        typedef void *(*gtk_init_ptr)(int*, char***);
        gtk_init_ptr gtkInit = (gtk_init_ptr)module->resolve("gtk_init");
        if (gtkInit) {
            // Prevent gtk_init() from replacing the X error handlers, since the Gtk
            // handlers abort when they receive an X error, thus killing the viewer.
#ifdef Q_WS_X11
            int (*old_error_handler)(Display*, XErrorEvent*) = XSetErrorHandler(0);
            int (*old_io_error_handler)(Display*) = XSetIOErrorHandler(0);
#endif
            gtkInit(0, 0);
#ifdef Q_WS_X11
            XSetErrorHandler(old_error_handler);
            XSetIOErrorHandler(old_io_error_handler);
#endif
            return;
        }
    }

    QLibrary library(QLatin1String("libgtk-x11-2.0"), 0);
    if (library.load()) {
        typedef void *(*gtk_init_check_ptr)(int*, char***);
        gtk_init_check_ptr gtkInitCheck = (gtk_init_check_ptr)library.resolve("gtk_init_check");
        // NOTE: We're using gtk_init_check() since gtk_init() calls exit() on failure.
        if (gtkInitCheck)
            (void) gtkInitCheck(0, 0);
    }
}
示例#10
0
文件: load.c 项目: rfloresx/corto
static corto_dl corto_load_validLibrary(corto_string fileName, corto_string *build_out) {
    corto_dl result = NULL;
    corto_string ___ (*build)(void);
    corto_string ___ (*library)(void);

    if (build_out) {
        *build_out = NULL;
    }

    if (!(result = corto_dlOpen(fileName))) {
        corto_seterr("%s", corto_dlError());
        goto error;
    }

    /* Lookup build function */
    build = (corto_string ___ (*)(void))corto_dlProc(result, "corto_getBuild");
    library = (corto_string ___ (*)(void))corto_dlProc(result, "corto_getLibrary");

    /* Validate version */
    if (build && strcmp(build(), corto_getBuild())) {
        corto_seterr(
          "corto: library '%s' links with conflicting corto library\n"
          "  links with: '%s' (%s)\n"
          "  current:    '%s' (%s)\n",
          fileName, library ? library() : "???", build(), corto_getLibrary(), corto_getBuild());
        /* Library is linked with different Corto version */
        if (build_out) {
            *build_out = corto_strdup(build());
        }
        goto error;
    } else if (build) {
        corto_debug(
          "loader: '%s' links with correct corto library\n  build:   '%s'\n  library: '%s'\n",
          fileName, build(), library());
    } else {
        corto_trace("loader: found '%s' which doesn't link with corto", fileName);
    }

    /* If no build function is available, the library is not linked with
     * Corto, and probably represents a --nocorto package */

    return result;
error:
    if (result) corto_dlClose(result);
    return NULL;
}
示例#11
0
// open a native library and push a handle
// Allocates memory
void factor_vm::primitive_dlopen() {
  data_root<byte_array> path(ctx->pop(), this);
  check_tagged(path);
  data_root<dll> library(allot<dll>(sizeof(dll)), this);
  library->path = path.value();
  ffi_dlopen(library.untagged());
  ctx->push(library.value());
}
示例#12
0
KLibFactory* KLibLoader::factory( const char* name )
{
    KLibrary* lib = library( name );
    if ( !lib )
        return 0;

    return lib->factory();
}
示例#13
0
void QWindowsShcoreDLL::init()
{
    if (QSysInfo::windowsVersion() < QSysInfo::WV_WINDOWS8_1)
        return;
    QSystemLibrary library(QStringLiteral("SHCore"));
    getProcessDpiAwareness = (GetProcessDpiAwareness)library.resolve("GetProcessDpiAwareness");
    setProcessDpiAwareness = (SetProcessDpiAwareness)library.resolve("SetProcessDpiAwareness");
    getDpiForMonitor = (GetDpiForMonitor)library.resolve("GetDpiForMonitor");
}
示例#14
0
static GetSpecialFolderPath resolveGetSpecialFolderPath()
{
    static GetSpecialFolderPath gsfp = 0;
    if (!gsfp) {
        QSystemLibrary library(QLatin1String("shell32"));
        gsfp = (GetSpecialFolderPath)library.resolve("SHGetSpecialFolderPathW");
    }
    return gsfp;
}
示例#15
0
/* open a native library and push a handle */
inline void factorvm::vmprim_dlopen()
{
	gc_root<byte_array> path(dpop(),this);
	path.untag_check(this);
	gc_root<dll> library(allot<dll>(sizeof(dll)),this);
	library->path = path.value();
	ffi_dlopen(library.untagged());
	dpush(library.value());
}
示例#16
0
void load_plugin(std::string path)
{
    QString libPath(path.c_str());
    QLibrary library(libPath);
    bool loaded = library.load();

    if(!loaded)
        printf("%s library failed to load!\n", path.c_str());
}
示例#17
0
void QWindowsShell32DLL::init()
{
    QSystemLibrary library(QStringLiteral("shell32"));
    sHCreateItemFromParsingName = (SHCreateItemFromParsingName)(library.resolve("SHCreateItemFromParsingName"));
    sHGetKnownFolderIDList = (SHGetKnownFolderIDList)(library.resolve("SHGetKnownFolderIDList"));
    sHGetStockIconInfo = (SHGetStockIconInfo)library.resolve("SHGetStockIconInfo");
    sHGetImageList = (SHGetImageList)library.resolve("SHGetImageList");
    sHCreateItemFromIDList = (SHCreateItemFromIDList)library.resolve("SHCreateItemFromIDList");
}
示例#18
0
bool QWindowsUser32DLL::initTouch()
{
    QSystemLibrary library(QStringLiteral("user32"));
    registerTouchWindow = (RegisterTouchWindow)(library.resolve("RegisterTouchWindow"));
    unregisterTouchWindow = (UnregisterTouchWindow)(library.resolve("UnregisterTouchWindow"));
    getTouchInputInfo = (GetTouchInputInfo)(library.resolve("GetTouchInputInfo"));
    closeTouchInputHandle = (CloseTouchInputHandle)(library.resolve("CloseTouchInputHandle"));
    return registerTouchWindow && unregisterTouchWindow && getTouchInputInfo && getTouchInputInfo;
}
示例#19
0
void tst_QLibrary::unload_after_implicit_load()
{
    QLibrary library( QCoreApplication::applicationDirPath() + "/mylib" );
    QFunctionPointer p = library.resolve("mylibversion");
    QVERIFY(p); // Check if it was loaded
    QVERIFY(library.isLoaded());
    QVERIFY(library.unload());
    QCOMPARE(library.isLoaded(), false);
}
示例#20
0
TrayIndicator *MainWidget::createTrayObject(QWidget *obj_parent)
{
    TrayFunctionPointer create_tray = NULL;

#ifdef Q_OS_LINUX
    QString desktop = getenv("XDG_CURRENT_DESKTOP");
    qDebug() << "Current desktop: " << desktop;

#ifdef QT_DEBUG
    QString library_path = QApplication::applicationDirPath();
#else
    QString library_path = "/usr/lib/qcma";
#endif

    if(desktop.toLower() == "kde")
    {
#ifdef QT_DEBUG
        library_path += "/../kdenotifier";
#endif
        // KDENotifier
        QLibrary library(library_path + "/libqcma_kdenotifier.so");
        if(library.load())
            create_tray = reinterpret_cast<TrayFunctionPointer>(library.resolve("createTrayIndicator"));
        else
            qWarning() << "Cannot load libqcma_kdenotifier plugin from" << library_path;
    }
    else
    // try to use the appindicator if is available
    // if(desktop.toLower() == "unity")
    {
#ifdef QT_DEBUG
        library_path += "/../appindicator";
#endif
        // AppIndicator
        QLibrary library(library_path + "/libqcma_appindicator.so");
        if(library.load())
            create_tray = reinterpret_cast<TrayFunctionPointer>(library.resolve("createTrayIndicator"));
        else
            qWarning() << "Cannot load libqcma_appindicator plugin from" << library_path;
    }
#endif
    // else QSystemTrayIcon
    return (create_tray != NULL) ? create_tray(obj_parent) : createTrayIndicator(obj_parent);
}
示例#21
0
static void resolveSymbols()
{
	static bool tried = false;
	if ( !tried ) {
		tried = true;
		QLibrary library( "uxtheme" );
		pIsAppThemed = (PtrIsAppThemed)library.resolve( "IsAppThemed" );
		pGetCurrentThemeName = (PtrGetCurrentThemeName)library.resolve( "GetCurrentThemeName" );
	}
}
示例#22
0
static void initializeGTK()
{
    QLibrary library(QLatin1String("libgtk-x11-2.0.so.0"));
    if (library.load()) {
        typedef void *(*gtk_init_check_ptr)(int*, char***);
        gtk_init_check_ptr gtkInitCheck = reinterpret_cast<gtk_init_check_ptr>(library.resolve("gtk_init_check"));
        // NOTE: We're using gtk_init_check() since gtk_init() calls exit() on failure.
        if (gtkInitCheck)
            (void) gtkInitCheck(0, 0);
    }
}
示例#23
0
/*!
    Unloads the library and returns TRUE if the library could be
    unloaded; otherwise returns FALSE.

    This function is called by the destructor if autoUnload() is
    enabled.

    \sa resolve()
*/
bool QLibrary::unload()
{
    if ( !d->pHnd )
	return TRUE;

#if !defined(QT_NO_LIBRARY_UNLOAD)
    if ( !d->freeLibrary() ) {
# if defined(QT_DEBUG_COMPONENT)
	qWarning( "%s could not be unloaded", (const char*) QFile::encodeName(library()) );
# endif
	return FALSE;
    }

# if defined(QT_DEBUG_COMPONENT) && QT_DEBUG_COMPONENT == 2
    qWarning( "%s has been unloaded", (const char*) QFile::encodeName(library()) );
# endif
    d->pHnd = 0;
#endif
    return TRUE;
}
示例#24
0
TQString TDECModuleInfo::factoryName() const
{
  if( d->factoryName.isEmpty() )
  {
    d->factoryName = _service->property("X-TDE-FactoryName", TQVariant::String).toString();
    if ( d->factoryName.isEmpty() )
      d->factoryName = library();
  }

  return d->factoryName;
}
/** Copied from QgsVectorLayer::setDataProvider
 *  TODO: Make it work in the generic environment
 *
 *  TODO: Is this class really the best place to put a data provider loader?
 *        It seems more sensible to provide the code in one place rather than
 *        in qgsrasterlayer, qgsvectorlayer, serversourceselect, etc.
 */
QgsDataProvider *QgsProviderRegistry::provider( QString const & providerKey, QString const & dataSource )
{
  // XXX should I check for and possibly delete any pre-existing providers?
  // XXX How often will that scenario occur?

  // load the plugin
  QString lib = library( providerKey );

#ifdef TESTPROVIDERLIB
  const char *cLib = lib.toUtf8();

  // test code to help debug provider loading problems
  //  void *handle = dlopen(cLib, RTLD_LAZY);
  void *handle = dlopen( cOgrLib, RTLD_LAZY | RTLD_GLOBAL );
  if ( !handle )
  {
    QgsLogger::warning( "Error in dlopen" );
  }
  else
  {
    QgsDebugMsg( "dlopen suceeded" );
    dlclose( handle );
  }

#endif
  // load the data provider
  QLibrary myLib( lib );

  QgsDebugMsg( "Library name is " + myLib.fileName() );
  if ( !myLib.load() )
  {
    QgsMessageLog::logMessage( QObject::tr( "Failed to load %1: %2" ).arg( lib ).arg( myLib.errorString() ) );
    return 0;
  }

  classFactoryFunction_t *classFactory = ( classFactoryFunction_t * ) cast_to_fptr( myLib.resolve( "classFactory" ) );
  if ( !classFactory )
  {
    QgsDebugMsg( QString( "Failed to load %1: no classFactory method" ).arg( lib ) );
    return 0;
  }

  QgsDataProvider *dataProvider = classFactory( &dataSource );
  if ( !dataProvider )
  {
    QgsMessageLog::logMessage( QObject::tr( "Unable to instantiate the data provider plugin %1" ).arg( lib ) );
    myLib.unload();
    return 0;
  }

  QgsDebugMsg( QString( "Instantiated the data provider plugin: %1" ).arg( dataProvider->name() ) );
  return dataProvider;
} // QgsProviderRegistry::setDataProvider
示例#26
0
QFunctionPointer QgsProviderRegistry::function( QString const &providerKey,
    QString const &functionName )
{
  QString lib = library( providerKey );
  if ( lib.isEmpty() )
    return nullptr;

  QLibrary myLib( library( providerKey ) );

  QgsDebugMsg( "Library name is " + myLib.fileName() );

  if ( myLib.load() )
  {
    return myLib.resolve( functionName.toLatin1().data() );
  }
  else
  {
    QgsDebugMsg( "Cannot load library: " + myLib.errorString() );
    return nullptr;
  }
}
示例#27
0
KLibrary *KLibLoader::globalLibrary(const char *name)
{
    KLibrary *tmp;
    int old_dlopen_flag = d->dlopen_flag;

    d->dlopen_flag |= RTLD_GLOBAL;
    kdDebug(150) << "Loading the next library global with flag " << d->dlopen_flag << "." << endl;
    tmp = library(name);
    d->dlopen_flag = old_dlopen_flag;

    return tmp;
}
示例#28
0
bool QWindowsUser32DLL::initTouch()
{
    if (!isTouchWindow && QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) {
        QSystemLibrary library(QStringLiteral("user32"));
        isTouchWindow = (IsTouchWindow)(library.resolve("IsTouchWindow"));
        registerTouchWindow = (RegisterTouchWindow)(library.resolve("RegisterTouchWindow"));
        unregisterTouchWindow = (UnregisterTouchWindow)(library.resolve("UnregisterTouchWindow"));
        getTouchInputInfo = (GetTouchInputInfo)(library.resolve("GetTouchInputInfo"));
        closeTouchInputHandle = (CloseTouchInputHandle)(library.resolve("CloseTouchInputHandle"));
    }
    return isTouchWindow && registerTouchWindow && unregisterTouchWindow && getTouchInputInfo && closeTouchInputHandle;
}
示例#29
0
void QWindowsUser32DLL::init()
{
    QSystemLibrary library(QStringLiteral("user32"));
    // MinGW (g++ 3.4.5) accepts only C casts.
    setLayeredWindowAttributes = (SetLayeredWindowAttributes)(library.resolve("SetLayeredWindowAttributes"));
    updateLayeredWindow = (UpdateLayeredWindow)(library.resolve("UpdateLayeredWindow"));
    if (!setLayeredWindowAttributes || !updateLayeredWindow)
        qFatal("This version of Windows is not supported (User32.dll is missing the symbols 'SetLayeredWindowAttributes', 'UpdateLayeredWindow').");

    updateLayeredWindowIndirect = (UpdateLayeredWindowIndirect)(library.resolve("UpdateLayeredWindowIndirect"));
    isHungAppWindow = (IsHungAppWindow)library.resolve("IsHungAppWindow");
}
示例#30
0
void QMeeGoRuntime::initialize()
{
    QFactoryLoader loader(QGraphicsSystemFactoryInterface_iid, QLatin1String("/graphicssystems"), Qt::CaseInsensitive);

    QLibraryPrivate *libraryPrivate = loader.library(QLatin1String("meego"));
    Q_ASSERT(libraryPrivate);

    QLibrary library(libraryPrivate->fileName, libraryPrivate->fullVersion);
    library.setLoadHints(QLibrary::ImprovedSearchHeuristics);
    bool success = library.load();

    if (success) {
        qt_meego_image_to_egl_shared_image = (QMeeGoImageToEglSharedImageFunc) library.resolve("qt_meego_image_to_egl_shared_image");
        qt_meego_pixmapdata_from_egl_shared_image = (QMeeGoPixmapDataFromEglSharedImageFunc) library.resolve("qt_meego_pixmapdata_from_egl_shared_image");
        qt_meego_pixmapdata_with_gl_texture = (QMeeGoPixmapDataWithGLTextureFunc) library.resolve("qt_meego_pixmapdata_with_gl_texture");
        qt_meego_destroy_egl_shared_image = (QMeeGoDestroyEGLSharedImageFunc) library.resolve("qt_meego_destroy_egl_shared_image");
        qt_meego_update_egl_shared_image_pixmap = (QMeeGoUpdateEglSharedImagePixmapFunc) library.resolve("qt_meego_update_egl_shared_image_pixmap");
        qt_meego_set_surface_fixed_size = (QMeeGoSetSurfaceFixedSizeFunc) library.resolve("qt_meego_set_surface_fixed_size");
        qt_meego_set_surface_scaling = (QMeeGoSetSurfaceScalingFunc) library.resolve("qt_meego_set_surface_scaling");
        qt_meego_set_translucent = (QMeeGoSetTranslucentFunc) library.resolve("qt_meego_set_translucent");
        qt_meego_pixmapdata_with_new_live_texture = (QMeeGoPixmapDataWithNewLiveTextureFunc) library.resolve("qt_meego_pixmapdata_with_new_live_texture");
        qt_meego_pixmapdata_from_live_texture_handle = (QMeeGoPixmapDataFromLiveTextureHandleFunc) library.resolve("qt_meego_pixmapdata_from_live_texture_handle");
        qt_meego_live_texture_lock = (QMeeGoLiveTextureLockFunc) library.resolve("qt_meego_live_texture_lock");
        qt_meego_live_texture_release = (QMeeGoLiveTextureReleaseFunc) library.resolve("qt_meego_live_texture_release");
        qt_meego_live_texture_get_handle = (QMeeGoLiveTextureGetHandleFunc) library.resolve("qt_meego_live_texture_get_handle");
        qt_meego_create_fence_sync = (QMeeGoCreateFenceSyncFunc) library.resolve("qt_meego_create_fence_sync");
        qt_meego_destroy_fence_sync = (QMeeGoDestroyFenceSyncFunc) library.resolve("qt_meego_destroy_fence_sync");
        qt_meego_invalidate_live_surfaces = (QMeeGoInvalidateLiveSurfacesFunc) library.resolve("qt_meego_invalidate_live_surfaces");
        qt_meego_switch_to_raster = (QMeeGoSwitchToRasterFunc) library.resolve("qt_meego_switch_to_raster");
        qt_meego_switch_to_meego = (QMeeGoSwitchToMeeGoFunc) library.resolve("qt_meego_switch_to_meego");
        qt_meego_register_switch_callback = (QMeeGoRegisterSwitchCallbackFunc) library.resolve("qt_meego_register_switch_callback");
        qt_meego_set_switch_policy = (QMeeGoSetSwitchPolicyFunc) library.resolve("qt_meego_set_switch_policy");

        if (qt_meego_image_to_egl_shared_image && qt_meego_pixmapdata_from_egl_shared_image && 
            qt_meego_pixmapdata_with_gl_texture && qt_meego_destroy_egl_shared_image && qt_meego_update_egl_shared_image_pixmap && 
            qt_meego_set_surface_fixed_size && qt_meego_set_surface_scaling && qt_meego_set_translucent && 
            qt_meego_pixmapdata_with_new_live_texture && qt_meego_pixmapdata_from_live_texture_handle &&
            qt_meego_live_texture_lock && qt_meego_live_texture_release && qt_meego_live_texture_get_handle &&
            qt_meego_create_fence_sync && qt_meego_destroy_fence_sync && qt_meego_invalidate_live_surfaces &&
            qt_meego_switch_to_raster && qt_meego_switch_to_meego && qt_meego_register_switch_callback &&
            qt_meego_set_switch_policy)
        {
            qDebug("Successfully resolved MeeGo graphics system: %s %s\n", qPrintable(libraryPrivate->fileName), qPrintable(libraryPrivate->fullVersion));
        } else {
            Q_ASSERT(false);
        }
    } else {
        Q_ASSERT(false);
    }

    initialized = true;
}