Why is the number 0x232b318c in AZ_CRC("Game", 0x232b318c)?

0

According to AppearsInAddComponentMenu's document example


 ...
->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c))
...

Why is the number 0x232b318c in AZ_CRC("Game", 0x232b318c)?

已提问 6 年前163 查看次数
5 回答
0
已接受的回答

Hi @REDACTEDUSER

There is a post build utility called crc_fix.exe that is invoked by waf. This utility scans .cpp files for the AZ_CRC macro and then calculates the CRC32 value for it. 0x232b318c is the CRC32 value for the string "Game" in hexadecimal format.

This is done as a compile time performance optimization, CRC32 are often used as unique identifiers throughout the code, their calculation is not insignificant in terms of performance cost, so by doing it during compilation it is avoided altogether.

已回答 6 年前
0

I really don't think that is a GUID, I think we use GUID in AZ_EDITOR_COMPONENT() macro.

.

已回答 6 年前
0

It is a GUID, so just a genuine identifier for the gem, every component needs to have one. Normally you can generate this number with the "Generate GUID" Tool in Visual Studio. Or it is auto generated by the Amazon Launcher on creation of the gem, not sure of this atm.

已回答 6 年前
0

I got it, so it's recommended to add the hex number after the string for this macro to improve performance.

已回答 6 年前
0

I just tried the crc_fix.exe, I see that it can't detect the AZ_CRC in the cpp files.

I typed this cmd:

crcfix -v -log:timestamp.log C:\Amazon\Lumberyard\LumberyardSDK\dev\Empty_Project\Gem\Code\Source*

where C:\Amazon\Lumberyard\LumberyardSDK\dev\Empty_Project\Gem\Code\Source\ is my source location.

Its output is ...CrcFix: Unchanged for all the files.

已回答 6 年前

该帖子已关闭:已禁用添加新回答、评论和投票。