gwnavruntime/visualdebug/messages/displaylistremovalblob.h Source File

displaylistremovalblob.h
Go to the documentation of this file.
1 /*
2 * Copyright 2016 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 #pragma once
9 
14 
15 
16 namespace Kaim
17 {
18 
19 
25 {
26  KY_DEFINE_NEW_DELETE_OPERATORS(Stat_Default_Mem)
27  KY_ROOT_BLOB_CLASS(VisualDebugMessage, DisplayListRemovalBlob, 0)
28 
29 public:
31 
32  KyUInt32 m_displayListId;
33  KyUInt32 m_worldElementId;
34 };
35 
36 inline void SwapEndianness(Kaim::Endianness::Target e, DisplayListRemovalBlob& self)
37 {
38  SwapEndianness(e, self.m_displayListId);
39  SwapEndianness(e, self.m_worldElementId);
40 }
41 
42 class DisplayListRemovalBlobBuilder : public BaseBlobBuilder<DisplayListRemovalBlob>
43 {
44 public:
45  DisplayListRemovalBlobBuilder(KyUInt32 displayListId, KyUInt32 worldElementId = KyUInt32MAXVAL)
46  : m_displayListId(displayListId), m_worldElementId(worldElementId) {}
47 
48  virtual void DoBuild()
49  {
50  BLOB_SET(m_blob->m_displayListId, m_displayListId);
51  BLOB_SET(m_blob->m_worldElementId, m_worldElementId);
52  }
53 private:
54  KyUInt32 m_displayListId;
55  KyUInt32 m_worldElementId;
56 };
57 
58 
64 {
65  KY_DEFINE_NEW_DELETE_OPERATORS(Stat_Default_Mem)
66  KY_ROOT_BLOB_CLASS(VisualDebugMessage, DisplayListRemovalFromNameBlob, 0)
67 
68 public:
70 
71  KyUInt32 m_worldElementId;
72  BlobArray<char> m_displayListName;
73  BlobArray<char> m_displayListGroupName;
74 };
75 
76 inline void SwapEndianness(Kaim::Endianness::Target e, DisplayListRemovalFromNameBlob& self)
77 {
78  SwapEndianness(e, self.m_worldElementId);
79  SwapEndianness(e, self.m_displayListName);
80  SwapEndianness(e, self.m_displayListGroupName);
81 }
82 
83 class DisplayListRemovalFromNameBlobBuilder : public BaseBlobBuilder<DisplayListRemovalFromNameBlob>
84 {
85 public:
86  DisplayListRemovalFromNameBlobBuilder(const char* displayListName, const char* displayListGroupName, KyUInt32 worldElementId = KyUInt32MAXVAL)
87  : m_displayListName(displayListName), m_displayListGroupName(displayListGroupName), m_worldElementId(worldElementId) {}
88 
89  virtual void DoBuild()
90  {
91  BLOB_SET(m_blob->m_worldElementId, m_worldElementId);
92  BLOB_STRING(m_blob->m_displayListName, m_displayListName.ToCStr());
93  BLOB_STRING(m_blob->m_displayListGroupName, m_displayListGroupName.ToCStr());
94  }
95 private:
96  Kaim::String m_displayListName;
97  Kaim::String m_displayListGroupName;
98  KyUInt32 m_worldElementId;
99 };
100 
101 }
102 
#define BLOB_SET(blob, value)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:130
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
Send this blob to destroy the current displayList with id "displayListId" and eventually being associ...
Definition: displaylistremovalblob.h:24
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:27
DisplayListRemovalBlob * m_blob
The blob maintained by this builder. Only modify using the macros listed under DoBuild().
Definition: baseblobbuilder.h:113
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
#define BLOB_STRING(str, src)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:166
Send this blob to destroy the current displayList with name "displayListName" and eventually being as...
Definition: displaylistremovalblob.h:63
#define KyUInt32MAXVAL
KyUInt32 max value
Definition: types.h:68