summaryrefslogtreecommitdiffstats
path: root/source/core/slang-type-convert-util.cpp
blob: db59215b5dbbd2369fa5f01187f1931214a82d80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "slang-type-convert-util.h"

namespace Slang
{

/* static */ SlangSourceLanguage TypeConvertUtil::getSourceLanguageFromTarget(
    SlangCompileTarget target)
{
    switch (target)
    {
    case SLANG_GLSL:
        {
            return SLANG_SOURCE_LANGUAGE_GLSL;
        }
    case SLANG_HLSL:
        return SLANG_SOURCE_LANGUAGE_HLSL;
    case SLANG_C_SOURCE:
        return SLANG_SOURCE_LANGUAGE_C;
    case SLANG_CPP_SOURCE:
        return SLANG_SOURCE_LANGUAGE_CPP;
    case SLANG_CPP_PYTORCH_BINDING:
        return SLANG_SOURCE_LANGUAGE_CPP;
    case SLANG_HOST_CPP_SOURCE:
        return SLANG_SOURCE_LANGUAGE_CPP;
    case SLANG_CUDA_SOURCE:
        return SLANG_SOURCE_LANGUAGE_CUDA;
    case SLANG_WGSL:
        return SLANG_SOURCE_LANGUAGE_WGSL;
    default:
        break;
    }
    return SLANG_SOURCE_LANGUAGE_UNKNOWN;
}

/* static */ SlangCompileTarget TypeConvertUtil::getCompileTargetFromSourceLanguage(
    SlangSourceLanguage lang)
{
    switch (lang)
    {
    case SLANG_SOURCE_LANGUAGE_GLSL:
        return SLANG_GLSL;
    case SLANG_SOURCE_LANGUAGE_HLSL:
        return SLANG_HLSL;
    case SLANG_SOURCE_LANGUAGE_C:
        return SLANG_C_SOURCE;
    case SLANG_SOURCE_LANGUAGE_CPP:
        return SLANG_CPP_SOURCE;
    case SLANG_SOURCE_LANGUAGE_CUDA:
        return SLANG_CUDA_SOURCE;
    }

    return SLANG_TARGET_UNKNOWN;
}

} // namespace Slang