summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-entry-point-decorations.h
blob: 87f9ea08818bccaa07155217b2dd7b9920b5fab1 (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
// slang-ir-entry-point-decorations.h
#pragma once

#include "slang-ir.h"

namespace Slang
{
enum class CodeGenTarget;
class DiagnosticSink;

/// Checks entry point decoration values to ensure that they are valid for
/// the shader stage and target.
void checkEntryPointDecorations(IRModule* module, CodeGenTarget target, DiagnosticSink* sink);


// OutputTopologyType member definition macro
#define OUTPUT_TOPOLOGY_TYPES(M) \
    M(Point, point)              \
    M(Line, line)                \
    M(Triangle, triangle)        \
    M(TriangleCW, triangle_cw)   \
    M(TriangleCCW, triangle_ccw) \
    /* end */

enum class OutputTopologyType
{
    Unknown = 0,
#define CASE(ID, NAME) ID,
    OUTPUT_TOPOLOGY_TYPES(CASE)
#undef CASE
};


OutputTopologyType convertOutputTopologyStringToEnum(String rawOutputTopology);

} // namespace Slang