OGRE  2.0
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
OgreLodConfigSerializer.h
Go to the documentation of this file.
1 /*
2  * -----------------------------------------------------------------------------
3  * This source file is part of OGRE
4  * (Object-oriented Graphics Rendering Engine)
5  * For the latest info, see http://www.ogre3d.org/
6  *
7  * Copyright (c) 2000-2014 Torus Knot Software Ltd
8  *
9  * Permission is hereby granted, free of charge, to any person obtaining a copy
10  * of this software and associated documentation files (the "Software"), to deal
11  * in the Software without restriction, including without limitation the rights
12  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13  * copies of the Software, and to permit persons to whom the Software is
14  * furnished to do so, subject to the following conditions:
15  *
16  * The above copyright notice and this permission notice shall be included in
17  * all copies or substantial portions of the Software.
18  *
19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25  * THE SOFTWARE.
26  * -----------------------------------------------------------------------------
27  */
28 
29 #ifndef __LogConfigSerializer_H_
30 #define __LogConfigSerializer_H_
31 
32 #include "OgreLodPrerequisites.h"
33 
34 #include "OgreDataStream.h"
35 #include "OgreSerializer.h"
36 
37 namespace Ogre
38 {
39 
41  public Ogre::Serializer
42 {
43 
44 public:
45 
47 
48  void exportLodConfig(Ogre::LodConfig& config, const Ogre::String& filename,
49  Endian endianMode = ENDIAN_NATIVE);
50  void exportLodConfig(Ogre::LodConfig& config, Ogre::DataStreamPtr stream,
51  Endian endianMode = ENDIAN_NATIVE);
52 
53  void importLodConfig(Ogre::LodConfig* config, const Ogre::String& filename);
54  void importLodConfig(Ogre::LodConfig* config, DataStreamPtr& stream);
55 
56 protected:
57 
59  LCCID_FILE_HEADER = 0x300,
60  LCCID_LOD_CONFIG = 0x400,
61  LCCID_BASIC_INFO = 0x500,
62  LCCID_LOD_LEVELS = 0x600,
63  LCCID_ADVANCED_INFO = 0x700,
64  LCCID_PROFILE = 0x800,
65  };
66 
67  void readLodConfig();
68  void readLodBasicInfo();
69  void readLodLevels();
70  void readLodAdvancedInfo();
71  void readLodProfile();
72 
73  void writeLodConfig();
74  size_t calcLodConfigSize();
75  void writeLodBasicInfo();
76  size_t calcLodBasicInfoSize();
77  void writeLodLevels();
78  size_t calcLodLevelsSize();
79  void writeLodAdvancedInfo();
80  size_t calcLodAdvancedInfoSize();
81  void writeLodProfile();
82  size_t calcLodProfileSize();
83 
85 };
86 }
87 #endif
Generic class for serialising data to / from binary stream-based files.
Endian
The endianness of written files.
#define _OgreLodExport
_StringBase String
Definition: OgreCommon.h:53