gwnavruntime/visualdebug/messages/displaylistremovalblob.h Source File

displaylistremovalblob.h
Go to the documentation of this file.
1 /*
2 * Copyright 2015 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 
8 #ifndef Navigation_DisplayListRemovalBlob_H
9 #define Navigation_DisplayListRemovalBlob_H
10 
15 
16 
17 namespace Kaim
18 {
19 
20 
25 class DisplayListRemovalBlob
26 {
27  KY_DEFINE_NEW_DELETE_OPERATORS(Stat_Default_Mem)
28  KY_ROOT_BLOB_CLASS(VisualDebugMessage, DisplayListRemovalBlob, 0)
29 
30 public:
32 
33  KyUInt32 m_displayListId;
34  KyUInt32 m_worldElementId;
35 };
36 
37 inline void SwapEndianness(Kaim::Endianness::Target e, DisplayListRemovalBlob& self)
38 {
39  SwapEndianness(e, self.m_displayListId);
40  SwapEndianness(e, self.m_worldElementId);
41 }
42 
43 class DisplayListRemovalBlobBuilder : public BaseBlobBuilder<DisplayListRemovalBlob>
44 {
45 public:
46  DisplayListRemovalBlobBuilder(KyUInt32 displayListId, KyUInt32 worldElementId = KyUInt32MAXVAL)
47  : m_displayListId(displayListId), m_worldElementId(worldElementId) {}
48 
49  virtual void DoBuild()
50  {
51  BLOB_SET(m_blob->m_displayListId, m_displayListId);
52  BLOB_SET(m_blob->m_worldElementId, m_worldElementId);
53  }
54 private:
55  KyUInt32 m_displayListId;
56  KyUInt32 m_worldElementId;
57 };
58 
59 
64 class DisplayListRemovalFromNameBlob
65 {
66  KY_DEFINE_NEW_DELETE_OPERATORS(Stat_Default_Mem)
67  KY_ROOT_BLOB_CLASS(VisualDebugMessage, DisplayListRemovalFromNameBlob, 0)
68 
69 public:
70  DisplayListRemovalFromNameBlob() {}
71 
72  KyUInt32 m_worldElementId;
73  BlobArray<char> m_displayListName;
74  BlobArray<char> m_displayListGroupName;
75 };
76 
77 inline void SwapEndianness(Kaim::Endianness::Target e, DisplayListRemovalFromNameBlob& self)
78 {
79  SwapEndianness(e, self.m_worldElementId);
80  SwapEndianness(e, self.m_displayListName);
81  SwapEndianness(e, self.m_displayListGroupName);
82 }
83 
84 class DisplayListRemovalFromNameBlobBuilder : public BaseBlobBuilder<DisplayListRemovalFromNameBlob>
85 {
86 public:
87  DisplayListRemovalFromNameBlobBuilder(const char* displayListName, const char* displayListGroupName, KyUInt32 worldElementId = KyUInt32MAXVAL)
88  : m_displayListName(displayListName), m_displayListGroupName(displayListGroupName), m_worldElementId(worldElementId) {}
89 
90  virtual void DoBuild()
91  {
92  BLOB_SET(m_blob->m_worldElementId, m_worldElementId);
93  BLOB_STRING(m_blob->m_displayListName, m_displayListName.ToCStr());
94  BLOB_STRING(m_blob->m_displayListGroupName, m_displayListGroupName.ToCStr());
95  }
96 private:
97  Kaim::String m_displayListName;
98  Kaim::String m_displayListGroupName;
99  KyUInt32 m_worldElementId;
100 };
101 
102 }
103 
104 #endif // Navigation_VisualDebugIdRemovalBlob_H
#define BLOB_SET(blob, value)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:136
Send this blob to destroy the current displayList with id "displayListId" and eventually being associ...
Definition: displaylistremovalblob.h:26
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
DisplayListRemovalBlob * m_blob
The blob maintained by this builder. Only modify using the macros listed under DoBuild().
Definition: baseblobbuilder.h:117
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
#define BLOB_STRING(str, src)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:179
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
#define KyUInt32MAXVAL
The maximum value that can be stored in the KyUInt32 variable type.
Definition: types.h:226