From Gregory Jaegy and Robert Osfield, added support for static linking of OpenFlight plugin

This commit is contained in:
Robert Osfield
2009-05-28 13:29:20 +00:00
parent d06265b782
commit 07cf3ecd11
11 changed files with 279 additions and 97 deletions

View File

@@ -40,6 +40,110 @@ using namespace flt;
using namespace osg;
using namespace osgDB;
// pull in symbols from attr plugin
USE_OSGPLUGIN(attr)
// pull in symbols from individual .o's to enable the static build to work
// note, following USE_FLTRECORD list was generated by running:
// grep REGISTER_FLTRECORD * -h | grep -v "#define" | sed 's/REGISTER_FLTRECORD/USE_FLTRECORD/g'
USE_FLTRECORD(Comment, COMMENT_OP)
USE_FLTRECORD(LongID, LONG_ID_OP)
USE_FLTRECORD(Matrix, MATRIX_OP)
USE_FLTRECORD(Multitexture, MULTITEXTURE_OP)
USE_FLTRECORD(UVList, UV_LIST_OP)
USE_FLTRECORD(Replicate, REPLICATE_OP)
USE_FLTRECORD(DummyRecord, OLD_TRANSLATE2_OP)
USE_FLTRECORD(DummyRecord, OLD_ROTATE_ABOUT_POINT_OP)
USE_FLTRECORD(DummyRecord, OLD_ROTATE_ABOUT_EDGE_OP)
USE_FLTRECORD(DummyRecord, OLD_SCALE_OP)
USE_FLTRECORD(DummyRecord, OLD_TRANSLATE_OP)
USE_FLTRECORD(DummyRecord, OLD_NONUNIFORM_SCALE_OP)
USE_FLTRECORD(DummyRecord, OLD_ROTATE_ABOUT_POINT2_OP)
USE_FLTRECORD(DummyRecord, OLD_ROTATE_SCALE_TO_POINT_OP)
USE_FLTRECORD(DummyRecord, OLD_PUT_TRANSFORM_OP)
USE_FLTRECORD(DummyRecord, OLD_BOUNDING_BOX_OP)
USE_FLTRECORD(DummyRecord, INDEXED_STRING_OP)
USE_FLTRECORD(DummyRecord, ROAD_ZONE_OP)
USE_FLTRECORD(DummyRecord, ROTATE_ABOUT_EDGE_OP)
USE_FLTRECORD(DummyRecord, TRANSLATE_OP)
USE_FLTRECORD(DummyRecord, NONUNIFORM_SCALE_OP)
USE_FLTRECORD(DummyRecord, ROTATE_ABOUT_POINT_OP)
USE_FLTRECORD(DummyRecord, ROTATE_SCALE_TO_POINT_OP)
USE_FLTRECORD(DummyRecord, PUT_TRANSFORM_OP)
USE_FLTRECORD(DummyRecord, GENERAL_MATRIX_OP)
USE_FLTRECORD(DummyRecord, VECTOR_OP)
USE_FLTRECORD(DummyRecord, BOUNDING_BOX_OP)
USE_FLTRECORD(DummyRecord, BOUNDING_SPHERE_OP)
USE_FLTRECORD(DummyRecord, BOUNDING_CYLINDER_OP)
USE_FLTRECORD(DummyRecord, BOUNDING_CONVEX_HULL_OP)
USE_FLTRECORD(DummyRecord, BOUNDING_HISTOGRAM)
USE_FLTRECORD(DummyRecord, BOUNDING_VOLUME_CENTER_OP)
USE_FLTRECORD(DummyRecord, BOUNDING_VOLUME_ORIENTATION_OP)
USE_FLTRECORD(DummyRecord, HISTOGRAM_BOUNDING_VOLUME_OP)
USE_FLTRECORD(PushLevel, PUSH_LEVEL_OP)
USE_FLTRECORD(PopLevel, POP_LEVEL_OP)
USE_FLTRECORD(PushSubface, PUSH_SUBFACE_OP)
USE_FLTRECORD(PopSubface, POP_SUBFACE_OP)
USE_FLTRECORD(PushExtension, PUSH_EXTENSION_OP)
USE_FLTRECORD(PopExtension, POP_EXTENSION_OP)
USE_FLTRECORD(PushAttribute, PUSH_ATTRIBUTE_OP)
USE_FLTRECORD(PopAttribute, POP_ATTRIBUTE_OP)
USE_FLTRECORD(Face, FACE_OP)
USE_FLTRECORD(VertexListRecord, VERTEX_LIST_OP)
USE_FLTRECORD(MorphVertexList, MORPH_VERTEX_LIST_OP)
USE_FLTRECORD(Mesh, MESH_OP)
USE_FLTRECORD(LocalVertexPool, LOCAL_VERTEX_POOL_OP)
USE_FLTRECORD(MeshPrimitive, MESH_PRIMITIVE_OP)
USE_FLTRECORD(LightPoint, LIGHT_POINT_OP)
USE_FLTRECORD(IndexedLightPoint, INDEXED_LIGHT_POINT_OP)
USE_FLTRECORD(LightPointSystem, LIGHT_POINT_SYSTEM_OP)
USE_FLTRECORD(VertexPalette, VERTEX_PALETTE_OP)
USE_FLTRECORD(ColorPalette, COLOR_PALETTE_OP)
USE_FLTRECORD(NameTable, NAME_TABLE_OP)
USE_FLTRECORD(MaterialPalette, MATERIAL_PALETTE_OP)
USE_FLTRECORD(OldMaterialPalette, OLD_MATERIAL_PALETTE_OP)
USE_FLTRECORD(TexturePalette, TEXTURE_PALETTE_OP)
USE_FLTRECORD(EyepointAndTrackplanePalette, EYEPOINT_AND_TRACKPLANE_PALETTE_OP)
USE_FLTRECORD(LinkagePalette, LINKAGE_PALETTE_OP)
USE_FLTRECORD(SoundPalette, SOUND_PALETTE_OP)
USE_FLTRECORD(LightSourcePalette, LIGHT_SOURCE_PALETTE_OP)
USE_FLTRECORD(LightPointAppearancePalette, LIGHT_POINT_APPEARANCE_PALETTE_OP)
USE_FLTRECORD(LightPointAnimationPalette, LIGHT_POINT_ANIMATION_PALETTE_OP)
USE_FLTRECORD(LineStylePalette, LINE_STYLE_PALETTE_OP)
USE_FLTRECORD(TextureMappingPalette, TEXTURE_MAPPING_PALETTE_OP)
USE_FLTRECORD(ShaderPalette, SHADER_PALETTE_OP)
USE_FLTRECORD(Header, HEADER_OP)
USE_FLTRECORD(Group, GROUP_OP)
USE_FLTRECORD(DegreeOfFreedom, DOF_OP)
USE_FLTRECORD(LevelOfDetail, LOD_OP)
USE_FLTRECORD(OldLevelOfDetail, OLD_LOD_OP)
USE_FLTRECORD(Switch, SWITCH_OP)
USE_FLTRECORD(ExternalReference, EXTERNAL_REFERENCE_OP)
USE_FLTRECORD(InstanceDefinition, INSTANCE_DEFINITION_OP)
USE_FLTRECORD(InstanceReference, INSTANCE_REFERENCE_OP)
USE_FLTRECORD(Extension, EXTENSION_OP)
USE_FLTRECORD(Object, OBJECT_OP)
USE_FLTRECORD(LightSource, LIGHT_SOURCE_OP)
USE_FLTRECORD(DummyRecord, 103)
USE_FLTRECORD(DummyRecord, 104)
USE_FLTRECORD(DummyRecord, 117)
USE_FLTRECORD(DummyRecord, 118)
USE_FLTRECORD(DummyRecord, 120)
USE_FLTRECORD(DummyRecord, 121)
USE_FLTRECORD(DummyRecord, 124)
USE_FLTRECORD(DummyRecord, 125)
USE_FLTRECORD(RoadSegment, ROAD_SEGMENT_OP)
USE_FLTRECORD(RoadConstruction, ROAD_CONSTRUCTION_OP)
USE_FLTRECORD(RoadPath, ROAD_PATH_OP)
USE_FLTRECORD(VertexC, VERTEX_C_OP)
USE_FLTRECORD(VertexCN, VERTEX_CN_OP)
USE_FLTRECORD(VertexCT, VERTEX_CT_OP)
USE_FLTRECORD(VertexCNT, VERTEX_CNT_OP)
USE_FLTRECORD(AbsoluteVertex, OLD_ABSOLUTE_VERTEX_OP)
USE_FLTRECORD(ShadedVertex, OLD_SHADED_VERTEX_OP)
USE_FLTRECORD(NormalVertex, OLD_NORMAL_VERTEX_OP)
class ReadExternalsVisitor : public osg::NodeVisitor
{