Hi,

I re-open the earlier question because the momentary questions fits into it: as 
Rafa already mentions, until now the osgPlugins for jpeg, png, tiff, curl etc. 
are not included in the package. For just rendering a .osg file that includes 
such texture references, it is sufficient to put the 3rdparty .a-files in the 
lib folder of the osgandroid project.

ON THE OTHER HAND, if we want to actually access the stored image file as 
osg.Image within the source code, we need to include osgdb_jpeg as a plugin in 
the wrapper - which means generating osgdb_jpeg - which means including the 
3rdparty libraries.

I already started to commit myself to try exactly that, but I hit a wall: I put 
the 3rdparty android package folder in the 3.3.8 source folder osg 
OpenSceneGraph and run the cmake compilation with the following command:

cmake .. 
-DCMAKE_TOOLCHAIN_FILE=../PlatformSpecifics/Android/android.toolchain.cmake  \
         -DOPENGL_PROFILE="GLES1" -DDYNAMIC_OPENTHREADS=OFF 
-DDYNAMIC_OPENSCENEGRAPH=OFF \
         -DANDROID_NATIVE_API_LEVEL=15 \
         -DANDROID_ABI=armeabi \
         
-DCMAKE_INSTALL_PREFIX=/media/christian/DATA/android-osg-sdk/gles1/armeabi \
         -DOSG_GL1_AVAILABLE=OFF \
         -DOSG_GL2_AVAILABLE=OFF \
         -DOSG_GL3_AVAILABLE=OFF \
         -DOSG_GLES1_AVAILABLE=ON \
         -DOSG_GLES2_AVAILABLE=OFF \
         -DOSG_GL_LIBRARY_STATIC=OFF \
         -DOSG_GL_DISPLAYLISTS_AVAILABLE=OFF \
         -DOSG_GL_MATRICES_AVAILABLE=ON \
         -DOSG_GL_VERTEX_FUNCS_AVAILABLE=ON \
         -DOSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE=ON \
         -DOSG_GL_FIXED_FUNCTION_AVAILABLE=ON \
         -DCURL_DIR=../3rdparty/curl \
         -DCURL_IS_STATIC=ON \
         -DGDAL_DIR=../3rdparty/gdal/include \
         -DGIFLIB_INCLUDE_DIR=../3rdparty/giflib \
         -DJPEG_INCLUDE_DIR=../3rdparty/libjpeg \
         -DPNG_INCLUDE_DIR=../3rdparty/libpng \
         -DTIFF_INCLUDE_DIR=../3rdparty/libtiff

[this is just the GLES1 profile example]

The cmake procedure find the folders and file, compiles all well, I get an 
osgdb_jpeg and osgdb_gif etc.

Now, the tricky bit: I include this in the Android.mk file osg osgAndroid

OSG_LDLIBS := \
-losgdb_osg \
-losgdb_ive \
-losgdb_rgb \
-losgdb_bmp \
-losgdb_tga \
-losgdb_stl \
-losgdb_obj \
-losgdb_dxf \
-losgdb_curl \
-losgdb_gif \
-losgdb_jpeg \
-losgdb_openflight \
-losgdb_serializers_osgvolume \
[...]

and set the LOCAL_STATIC_LIBRARIES

LOCAL_STATIC_LIBRARIES := -ljpeg -lgif -lpng -lcurl -ltiff

when I run ndk-build now, it does compile, but crashes at the following point:

[armeabi] Compile++ thumb: jniosg-gles1 <= JNIosgViewer.cpp
[armeabi] Compile++ thumb: jniosg-gles1 <= JNIosg.cpp
[armeabi] Compile++ thumb: jniosg-gles1 <= JNIosgDB.cpp
[armeabi] Compile++ thumb: jniosg-gles1 <= JNIosgUtil.cpp
[armeabi] Compile++ thumb: jniosg-gles1 <= JNIosgGA.cpp
[armeabi] Compile++ thumb: jniosg-gles1 <= JNIUtils.cpp
[armeabi] Compile++ thumb: jniosg-gles1 <= MultiViewNode.cpp
[armeabi] Compile++ thumb: jniosg-gles1 <= GLES2ShaderGenVisitor.cpp
[armeabi] Prebuilt       : libgnustl_shared.so <= 
<NDK>/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/thumb/
[armeabi] SharedLibrary  : libjniosg-gles1.so
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_gif.a(ReaderWriterGIF.cpp.o):ReaderWriterGIF.cpp:function
 simage_gif_load(std::istream&, int*, int*, int*, GifImageStream**): error: 
undefined reference to 'DGifOpen'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_gif.a(ReaderWriterGIF.cpp.o):ReaderWriterGIF.cpp:function
 simage_gif_load(std::istream&, int*, int*, int*, GifImageStream**): error: 
undefined reference to 'DGifGetRecordType'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_gif.a(ReaderWriterGIF.cpp.o):ReaderWriterGIF.cpp:function
 simage_gif_load(std::istream&, int*, int*, int*, GifImageStream**): error: 
undefined reference to 'DGifGetImageDesc'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_gif.a(ReaderWriterGIF.cpp.o):ReaderWriterGIF.cpp:function
 simage_gif_load(std::istream&, int*, int*, int*, GifImageStream**): error: 
undefined reference to 'DGifGetLine'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_gif.a(ReaderWriterGIF.cpp.o):ReaderWriterGIF.cpp:function
 simage_gif_load(std::istream&, int*, int*, int*, GifImageStream**): error: 
undefined reference to 'DGifGetLine'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_gif.a(ReaderWriterGIF.cpp.o):ReaderWriterGIF.cpp:function
 simage_gif_load(std::istream&, int*, int*, int*, GifImageStream**): error: 
undefined reference to 'DGifGetExtension'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_gif.a(ReaderWriterGIF.cpp.o):ReaderWriterGIF.cpp:function
 simage_gif_load(std::istream&, int*, int*, int*, GifImageStream**): error: 
undefined reference to 'DGifGetExtensionNext'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_gif.a(ReaderWriterGIF.cpp.o):ReaderWriterGIF.cpp:function
 simage_gif_load(std::istream&, int*, int*, int*, GifImageStream**): error: 
undefined reference to 'DGifCloseFile'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::jpeg_istream_src(jpeg_decompress_struct*, std::istream*): error: 
undefined reference to 'jpeg_resync_to_restart'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::simage_jpeg_load(std::istream&, int*, int*, int*, unsigned int*): 
error: undefined reference to 'jpeg_std_error'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::simage_jpeg_load(std::istream&, int*, int*, int*, unsigned int*): 
error: undefined reference to 'jpeg_destroy_decompress'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::simage_jpeg_load(std::istream&, int*, int*, int*, unsigned int*): 
error: undefined reference to 'jpeg_CreateDecompress'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::simage_jpeg_load(std::istream&, int*, int*, int*, unsigned int*): 
error: undefined reference to 'jpeg_save_markers'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::simage_jpeg_load(std::istream&, int*, int*, int*, unsigned int*): 
error: undefined reference to 'jpeg_read_header'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::simage_jpeg_load(std::istream&, int*, int*, int*, unsigned int*): 
error: undefined reference to 'jpeg_start_decompress'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::simage_jpeg_load(std::istream&, int*, int*, int*, unsigned int*): 
error: undefined reference to 'jpeg_read_scanlines'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::simage_jpeg_load(std::istream&, int*, int*, int*, unsigned int*): 
error: undefined reference to 'jpeg_finish_decompress'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 osgDBJPEG::simage_jpeg_load(std::istream&, int*, int*, int*, unsigned int*): 
error: undefined reference to 'jpeg_destroy_decompress'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 ReaderWriterJPEG::write_JPEG_file(std::ostream&, osg::Image const&, int) 
const: error: undefined reference to 'jpeg_std_error'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 ReaderWriterJPEG::write_JPEG_file(std::ostream&, osg::Image const&, int) 
const: error: undefined reference to 'jpeg_CreateCompress'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 ReaderWriterJPEG::write_JPEG_file(std::ostream&, osg::Image const&, int) 
const: error: undefined reference to 'jpeg_set_defaults'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 ReaderWriterJPEG::write_JPEG_file(std::ostream&, osg::Image const&, int) 
const: error: undefined reference to 'jpeg_set_quality'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 ReaderWriterJPEG::write_JPEG_file(std::ostream&, osg::Image const&, int) 
const: error: undefined reference to 'jpeg_start_compress'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 ReaderWriterJPEG::write_JPEG_file(std::ostream&, osg::Image const&, int) 
const: error: undefined reference to 'jpeg_write_scanlines'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 ReaderWriterJPEG::write_JPEG_file(std::ostream&, osg::Image const&, int) 
const: error: undefined reference to 'jpeg_finish_compress'
/media/christian/DATA/android-osg-sdk/gles1/armeabi/lib/osgPlugins-3.3.8/libosgdb_jpeg.a(ReaderWriterJPEG.cpp.o):ReaderWriterJPEG.cpp:function
 ReaderWriterJPEG::write_JPEG_file(std::ostream&, osg::Image const&, int) 
const: error: undefined reference to 'jpeg_destroy_compress'
collect2: error: ld returned 1 exit status

What I deduct from that: something went wrong when compiling OSG 3.3.8 for 
Android with the plugins, as the static libraries (osgdb_jpeg, osgdb_gif, 
osgdb_curl) do not properly link to their pre-compiled library counterparts 
(libjpeg, libgif, libcurl, etc.)

Jan, Rafa - the community:
a) Did you try out to build osgAndroid with plugins ? Did you get the same 
problems ?
b) Any idea how to circumvent the problem ?

Cheers,
Christian

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=64664#64664





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to