MCPcopy Create free account
hub / github.com/baldurk/renderdoc / checkname

Function checkname

qrenderdoc/Code/pyrenderdoc/interface_check.h:47–131  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45};
46
47inline bool checkname(rdcstr &log, const char *baseType, rdcstr name, NameType nameType,
48 const rdcstr &mem_doc)
49{
50 // skip __ prefixed names
51 if(name.beginsWith("__"))
52 return false;
53
54 // skip any rdctype based types that are converted into equivalent python types
55 if((baseType && strstr(baseType, "rdcarray")) || name.contains("rdcarray"))
56 return false;
57 if((baseType && strstr(baseType, "bytebuf")) || name.contains("bytebuf"))
58 return false;
59 if((baseType && strstr(baseType, "rdcstr")) || name.contains("rdcstr"))
60 return false;
61 if((baseType && strstr(baseType, "StructuredBufferList")) ||
62 name.contains("StructuredBufferList"))
63 return false;
64 if((baseType && strstr(baseType, "StructuredChunkList")) || name.contains("StructuredChunkList"))
65 return false;
66 if((baseType && strstr(baseType, "StructuredObjectList")) ||
67 name.contains("StructuredObjectList"))
68 return false;
69
70 // allow the config to have different names
71 if((baseType && strstr(baseType, "PersistantConfig")) || name.contains("PersistantConfig"))
72 return false;
73
74 // skip swig internal type
75 if((baseType && strstr(baseType, "SwigPyObject")) || name.contains("SwigPyObject"))
76 return false;
77
78 // remove the module prefix, if this is a type name we're checking
79 if(name.beginsWith("renderdoc."))
80 name.erase(0, 10);
81 if(name.beginsWith("qrenderdoc."))
82 name.erase(0, 11);
83
84 // skip a few well-known members
85 if(name == "this" || name == "thisown")
86 return false;
87
88 bool member = (nameType == NameType::Member);
89
90 // look for invalid name
91 bool badfirstChar = false;
92 if(member)
93 badfirstChar = name[0] < 'a' || name[0] > 'z';
94 else
95 badfirstChar = name[0] < 'A' || name[0] > 'Z';
96
97 if(badfirstChar || (nameType != NameType::EnumValue && name.contains('_')))
98 {
99 const char *nameTypeStr = "";
100
101 switch(nameType)
102 {
103 case NameType::EnumValue: nameTypeStr = "enum value"; break;
104 case NameType::Member: nameTypeStr = "member variable"; break;

Callers 1

check_interfaceFunction · 0.85

Calls 4

beginsWithMethod · 0.45
containsMethod · 0.45
eraseMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected