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)?

preguntada hace 6 años163 visualizaciones
5 Respuestas
0
Respuesta aceptada

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.

respondido hace 6 años
0

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

.

respondido hace 6 años
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.

respondido hace 6 años
0

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

respondido hace 6 años
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.

respondido hace 6 años

Está publicación está cerrada: la opción de añadir nuevas respuestas, comentarios y votos está deshabilitada.