Linux multi-monitor fullscreen support
[ryzomcore.git] / nel / src / 3d / register_3d.cpp
blob82ac4502e19d023c485ca60fc5fb68696af9295c
1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #include "std3d.h"
20 #include "nel/3d/register_3d.h"
21 #include "nel/3d/texture_font.h"
22 #include "nel/3d/texture_file.h"
23 #include "nel/3d/texture_blank.h"
24 #include "nel/3d/texture_mem.h"
25 #include "nel/3d/texture_grouped.h"
26 #include "nel/3d/texture_cube.h"
27 #include "nel/3d/mesh.h"
28 #include "nel/3d/mesh_multi_lod.h"
29 #include "nel/3d/skeleton_shape.h"
30 #include "nel/3d/track_keyframer.h"
31 #include "nel/3d/ps_util.h"
32 #include "nel/3d/mesh_mrm.h"
33 #include "nel/3d/mesh_mrm_skinned.h"
34 #include "nel/3d/flare_shape.h"
35 #include "nel/3d/water_shape.h"
36 #include "nel/3d/seg_remanence_shape.h"
37 #include "nel/3d/texture_bump.h"
38 #include "nel/3d/texture_emboss.h"
39 #include "nel/3d/texture_blend.h"
40 #include "nel/3d/texture_multi_file.h"
41 #include "nel/3d/meshvp_wind_tree.h"
42 #include "nel/3d/meshvp_per_pixel_light.h"
43 #include "nel/3d/track_sampled_quat.h"
44 #include "nel/3d/track_sampled_vector.h"
45 #include "nel/3d/packed_zone.h"
48 #ifdef DEBUG_NEW
49 #define new DEBUG_NEW
50 #endif
52 namespace NL3D
56 // ****************************************************************************
57 void registerSerial3d()
59 static bool bInitialized=false;
60 if (!bInitialized)
62 // Textures.
63 NLMISC_REGISTER_CLASS(CTextureFile);
64 NLMISC_REGISTER_CLASS(CTextureBlank);
65 NLMISC_REGISTER_CLASS(CTextureMem);
66 NLMISC_REGISTER_CLASS(CTextureFont);
67 NLMISC_REGISTER_CLASS(CTextureGrouped);
68 NLMISC_REGISTER_CLASS(CTextureCube);
69 NLMISC_REGISTER_CLASS(CTextureBump);
70 NLMISC_REGISTER_CLASS(CTextureEmboss);
71 NLMISC_REGISTER_CLASS(CTextureBlend);
72 NLMISC_REGISTER_CLASS(CTextureMultiFile);
76 // Track
77 NLMISC_REGISTER_CLASS(CTrackKeyFramerTCBFloat);
78 NLMISC_REGISTER_CLASS(CTrackKeyFramerTCBVector);
79 NLMISC_REGISTER_CLASS(CTrackKeyFramerTCBQuat);
80 NLMISC_REGISTER_CLASS(CTrackKeyFramerTCBInt);
81 NLMISC_REGISTER_CLASS(CTrackKeyFramerTCBRGBA);
82 NLMISC_REGISTER_CLASS(CTrackKeyFramerBezierFloat);
83 NLMISC_REGISTER_CLASS(CTrackKeyFramerBezierVector);
84 NLMISC_REGISTER_CLASS(CTrackKeyFramerBezierQuat);
85 NLMISC_REGISTER_CLASS(CTrackKeyFramerBezierInt);
86 NLMISC_REGISTER_CLASS(CTrackKeyFramerBezierRGBA);
87 NLMISC_REGISTER_CLASS(CTrackKeyFramerLinearFloat);
88 NLMISC_REGISTER_CLASS(CTrackKeyFramerLinearVector);
89 NLMISC_REGISTER_CLASS(CTrackKeyFramerLinearQuat);
90 NLMISC_REGISTER_CLASS(CTrackKeyFramerLinearInt);
91 NLMISC_REGISTER_CLASS(CTrackKeyFramerLinearRGBA);
92 NLMISC_REGISTER_CLASS(CTrackKeyFramerConstFloat);
93 NLMISC_REGISTER_CLASS(CTrackKeyFramerConstVector);
94 NLMISC_REGISTER_CLASS(CTrackKeyFramerConstQuat);
95 NLMISC_REGISTER_CLASS(CTrackKeyFramerConstInt);
96 NLMISC_REGISTER_CLASS(CTrackKeyFramerConstString);
97 NLMISC_REGISTER_CLASS(CTrackKeyFramerConstBool);
98 NLMISC_REGISTER_CLASS(CTrackKeyFramerConstRGBA);
99 NLMISC_REGISTER_CLASS(CTrackDefaultFloat);
100 NLMISC_REGISTER_CLASS(CTrackDefaultVector);
101 NLMISC_REGISTER_CLASS(CTrackDefaultQuat);
102 NLMISC_REGISTER_CLASS(CTrackDefaultInt);
103 NLMISC_REGISTER_CLASS(CTrackDefaultString);
104 NLMISC_REGISTER_CLASS(CTrackDefaultBool);
105 NLMISC_REGISTER_CLASS(CTrackDefaultRGBA);
106 NLMISC_REGISTER_CLASS(CTrackSampledQuat);
107 NLMISC_REGISTER_CLASS(CTrackSampledVector);
109 // Particle system
110 CPSUtil::registerSerialParticleSystem();
112 // Don't register CTextureCroos,, since local, and not designed to be serialised.
114 // Shapes.
115 NLMISC_REGISTER_CLASS(CMesh);
116 NLMISC_REGISTER_CLASS(CMeshGeom);
117 NLMISC_REGISTER_CLASS(CSkeletonShape);
118 NLMISC_REGISTER_CLASS(CMeshMRM);
119 NLMISC_REGISTER_CLASS(CMeshMRMGeom);
120 NLMISC_REGISTER_CLASS(CMeshMRMSkinned);
121 NLMISC_REGISTER_CLASS(CMeshMRMSkinnedGeom);
122 NLMISC_REGISTER_CLASS(CMeshMultiLod);
123 NLMISC_REGISTER_CLASS(CFlareShape);
124 NLMISC_REGISTER_CLASS(CWaterShape);
125 NLMISC_REGISTER_CLASS(CWaveMakerShape);
126 NLMISC_REGISTER_CLASS(CSegRemanenceShape);
128 // Shapes VPs.
129 NLMISC_REGISTER_CLASS(CMeshVPWindTree);
130 NLMISC_REGISTER_CLASS(CMeshVPPerPixelLight);
132 // Packed collisions
133 NLMISC_REGISTER_CLASS(CPackedZone16);
134 NLMISC_REGISTER_CLASS(CPackedZone32);
137 bInitialized=true;
142 } // NL3D