[Gimp-developer] How to retrieve the monitor profile from inside a plug-in



Dear experts,

I am trying to improve the G’MIC plug-in by adding color management of the preview area. For this, I need to 
retrieve the GIMP monitor profile from inside the plug-in code.

I have tried the following:

  GimpColorConfig* color_config = gimp_get_color_configuration();
  if(color_config)
    GimpColorProfile* dpy_profile = gimp_color_config_get_display_color_profile(color_config, NULL);

While the code compiles just fine, I get undefined symbol for get_display_profile() function at link time. 
Note that gimp_color_config_get_display_color_profile() is correctly found by the linker, so I tend to 
exclude missing libraries in the linker command, which I put here for reference:

/usr/bin/c++    -O0 -g -ansi -pedantic -Dcimg_verbosity=3              -Dgmic_build -Dcimg_use_vt100 
-Dgmic_is_parallel -Dcimg_use_abort  -std=gnu++11 -Wno-error=narrowing -fno-ipa-sra -fpermissive -fopenmp 
-Dcimg_use_openmp  -Dcimg_use_zlib  -Dcimg_display=1 -Dcimg_appname=\"gmic\"  -Dcimg_use_xshm  
-Dcimg_use_fftw3  -Dcimg_use_opencv  -Dcimg_use_magick  -Dcimg_use_tiff  -Dcimg_use_png  -Dcimg_use_jpeg  
-Dcimg_use_openexr     CMakeFiles/gmic_gimp.dir/src/gmic.cpp.o CMakeFiles/gmic_gimp.dir/src/gmic_gimp.cpp.o  
-o gmic_gimp  -L/zzz/lib -rdynamic -lSM -lICE -lX11 -lXext -ltiff -lpng -lz -ljpeg -lGraphicsMagick++ 
-lGraphicsMagick -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -lopencv_calib3d -lopencv_contrib 
-lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc 
-lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching 
-lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lz -lfftw3 -lgimp-2.0 -lgimpmath-2.0 
-lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm 
-lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 
-lgimpmodule-2.0 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgtk-x11-2.0 
-lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 
-lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 
-lfreetype -lpthread -lgomp  -lfftw3_threads -ljpeg -lGraphicsMagick++ -lGraphicsMagick -lIlmImf -lz -lImath 
-lHalf -lIex -lIlmThread -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann 
-lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl 
-lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lfftw3 
-lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 
-lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 
-lgimpwidgets-2.0 -lgimpmodule-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lpangocairo-1.0 
-lpango-1.0 -lfontconfig -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 
-lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 
-lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 
-latk-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -lpango-1.0 -lfontconfig -lfreetype -lpthread -lgomp  
-lfftw3_threads -Wl,-rpath,/zzz/lib 


What could I be doing wrong? Or what is the right way to retrieve the monitor profile?

Thanks in advance!

Andrea


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]