| 1014 | } |
| 1015 | |
| 1016 | void HLSLGenerator::OutputDeclarationBody(const HLSLType& type, const char* name, const char* semantic /*=NULL*/, const char* registerName /*=NULL*/, HLSLExpression* assignment /*=NULL*/) |
| 1017 | { |
| 1018 | m_writer.Write("%s", name); |
| 1019 | |
| 1020 | if (type.array) { |
| 1021 | ASSERT(semantic == NULL); |
| 1022 | m_writer.Write("["); |
| 1023 | if (type.arraySize != NULL) { |
| 1024 | OutputExpression(type.arraySize); |
| 1025 | } |
| 1026 | m_writer.Write("]"); |
| 1027 | } |
| 1028 | |
| 1029 | if (semantic != NULL) { |
| 1030 | m_writer.Write(" : %s", semantic); |
| 1031 | } |
| 1032 | |
| 1033 | if (registerName != NULL) { |
| 1034 | if (m_isInsideBuffer) { |
| 1035 | m_writer.Write(" : packoffset(%s)", registerName); |
| 1036 | } |
| 1037 | else { |
| 1038 | m_writer.Write(" : register(%s)", registerName); |
| 1039 | } |
| 1040 | } |
| 1041 | |
| 1042 | if (assignment != NULL && !IsSamplerType(type)) { |
| 1043 | m_writer.Write(" = "); |
| 1044 | if (type.array) { |
| 1045 | m_writer.Write("{ "); |
| 1046 | OutputExpressionList(assignment); |
| 1047 | m_writer.Write(" }"); |
| 1048 | } |
| 1049 | else { |
| 1050 | OutputExpression(assignment); |
| 1051 | } |
| 1052 | } |
| 1053 | } |
| 1054 | |
| 1055 | void HLSLGenerator::OutputDeclaration(const HLSLType& type, const char* name, const char* semantic /*=NULL*/, const char* registerName /*=NULL*/, HLSLExpression* assignment /*=NULL*/) |
| 1056 | { |
nothing calls this directly
no test coverage detected