<div dir="ltr">Hi all.<div><div>I beg your pardon in advance for my long email post...</div><div><br><div>I am using VTK from a Java Web Start application I've written.</div><div><br></div><div>In order to support a possibly trouble-free deployment for my web users, I am packaging vtk.jar and the related VTK native libraries into signed JAR files, to be passed as external resources through the JNLP descriptor, differentiating these resources based on OS and architecture (32-bit/64-bit, Windows/Mac/Linux).</div>
<div><br></div><div>Now, considering that my application is a Java Web Start application which may be used also through low-bandwidth Internet links, I am trying to minimize the footprint of VTK, in particular by trying to reduce the number of VTK native libraries to include.</div>
<div><br></div><div>Currently in my application I make direct use of the following VTK classes:</div><div><br></div><div><div>vtkImageData</div><div>vtkImageReader2</div><div>vtkDataArray</div><div>vtkUnsignedShortArray</div>
<div>vtkUnsignedCharArray</div><div>vtkCanvas</div><div>vtkImagePlaneWidget</div><div>vtkImageReslice</div><div>vtkOrientationMarkerWidget</div><div>vtkAnnotatedCubeActor</div><div>vtkRenderer</div><div>vtkCamera</div><div>
vtkGenericRenderWindowInteractor</div></div><div><br></div><div>I've built VTK on Win 64-bit platform through Visual Studio 2010 (starting from CMake), enabling th "VTK_Group_Imaging", "VTK_Group_Rendering", "VTK_Group_StandAlone" and "VTK_WRAP_JAVA" CMake options.</div>
<div><br></div><div>Checking the dependencies of each produced .dll file with the DependencyWalker utility, I've ended up with the following "minimal" list of required DLLs for my application:</div><div><br>
</div><div><div>vtkalglib-6.0.dll</div><div>vtkCommonComputationalGeometry-6.0.dll</div><div>vtkCommonComputationalGeometryJava.dll</div><div>vtkCommonCore-6.0.dll</div><div>vtkCommonCoreJava.dll</div><div>vtkCommonDataModel-6.0.dll</div>
<div>vtkCommonDataModelJava.dll</div><div>vtkCommonExecutionModel-6.0.dll</div><div>vtkCommonExecutionModelJava.dll</div><div>vtkCommonMath-6.0.dll</div><div>vtkCommonMathJava.dll</div><div>vtkCommonMisc-6.0.dll</div><div>
vtkCommonMiscJava.dll</div><div>vtkCommonSystem-6.0.dll</div><div>vtkCommonSystemJava.dll</div><div>vtkCommonTransforms-6.0.dll</div><div>vtkCommonTransformsJava.dll</div><div>vtkDICOMParser-6.0.dll</div><div>vtkexpat-6.0.dll</div>
<div>vtkFiltersCore-6.0.dll</div><div>vtkFiltersCoreJava.dll</div><div>vtkFiltersExtraction-6.0.dll</div><div>vtkFiltersExtractionJava.dll</div><div>vtkFiltersGeneral-6.0.dll</div><div>vtkFiltersGeneralJava.dll</div><div>
vtkFiltersGeometry-6.0.dll</div><div>vtkFiltersGeometryJava.dll</div><div>vtkFiltersHybrid-6.0.dll</div><div>vtkFiltersHybridJava.dll</div><div>vtkFiltersModeling-6.0.dll</div><div>vtkFiltersModelingJava.dll</div><div>vtkFiltersSources-6.0.dll</div>
<div>vtkFiltersSourcesJava.dll</div><div>vtkFiltersStatistics-6.0.dll</div><div>vtkFiltersStatisticsJava.dll</div><div>vtkfreetype-6.0.dll</div><div>vtkftgl-6.0.dll</div><div>vtkImagingColor-6.0.dll</div><div>vtkImagingColorJava.dll</div>
<div>vtkImagingCore-6.0.dll</div><div>vtkImagingCoreJava.dll</div><div>vtkImagingFourier-6.0.dll</div><div>vtkImagingFourierJava.dll</div><div>vtkImagingGeneral-6.0.dll</div><div>vtkImagingGeneralJava.dll</div><div>vtkImagingHybrid-6.0.dll</div>
<div>vtkImagingHybridJava.dll</div><div>vtkImagingSources-6.0.dll</div><div>vtkImagingSourcesJava.dll</div><div>vtkInteractionImage-6.0.dll</div><div>vtkInteractionImageJava.dll</div><div>vtkInteractionStyle-6.0.dll</div>
<div>vtkInteractionStyleJava.dll</div><div>vtkInteractionWidgets-6.0.dll</div><div>vtkInteractionWidgetsJava.dll</div><div>vtkIOCore-6.0.dll</div><div>vtkIOCoreJava.dll</div><div>vtkIOImage-6.0.dll</div><div>vtkIOImageJava.dll</div>
<div>vtkIOXMLParser-6.0.dll</div><div>vtkIOXMLParserJava.dll</div><div>vtkjpeg-6.0.dll</div><div>vtkmetaio-6.0.dll</div><div>vtkpng-6.0.dll</div><div>vtkRenderingAnnotation-6.0.dll</div><div>vtkRenderingAnnotationJava.dll</div>
<div>vtkRenderingCore-6.0.dll</div><div>vtkRenderingCoreJava.dll</div><div>vtkRenderingFreeType-6.0.dll</div><div>vtkRenderingFreeTypeJava.dll</div><div>vtkRenderingFreeTypeOpenGL-6.0.dll</div><div>vtkRenderingFreeTypeOpenGLJava.dll</div>
<div>vtkRenderingOpenGL-6.0.dll</div><div>vtkRenderingOpenGLJava.dll</div><div>vtkRenderingVolume-6.0.dll</div><div>vtkRenderingVolumeJava.dll</div><div>vtkRenderingVolumeOpenGL-6.0.dll</div><div>vtkRenderingVolumeOpenGLJava.dll</div>
<div>vtksys-6.0.dll</div><div>vtktiff-6.0.dll</div><div>vtkViewsCore-6.0.dll</div><div>vtkViewsCoreJava.dll</div><div>vtkWrappingJava-6.0.dll</div><div>vtkzlib-6.0.dll</div></div><div><br></div><div>In "MinSizeRel" build configuration, this means more than 25 megabytes of DLLs.</div>
<div>Can this result be improved somehow? I mean, can I somehow decrease the total size/number of required VTK native libraries, considering the set of VTK classes I am using?</div></div></div><div><br></div><div>Thank you in advance for any hint/suggestion you may provide.</div>
<div>Best regards,</div><div><br></div><div>Marco</div><div><br></div></div>