24 {
28 context.fErrors->error(modifiers.fPosition,
29 "layout qualifiers are not allowed in this kind of program");
30 return nullptr;
31 }
32
33 if (modifiers.fLayout.fLocalSizeX >= 0 ||
34 modifiers.fLayout.fLocalSizeY >= 0 ||
35 modifiers.fLayout.fLocalSizeZ >= 0) {
36 if (modifiers.fLayout.fLocalSizeX == 0 ||
37 modifiers.fLayout.fLocalSizeY == 0 ||
38 modifiers.fLayout.fLocalSizeZ == 0) {
39 context.fErrors->error(modifiers.fPosition, "local size qualifiers cannot be zero");
40 return nullptr;
41 }
43 context.fErrors->error(
44 modifiers.fPosition,
45 "local size layout qualifiers are only allowed in a compute program");
46 return nullptr;
47 }
49 context.fErrors->error(
50 modifiers.fPosition,
51 "local size layout qualifiers must be defined using an 'in' declaration");
52 return nullptr;
53 }
54 }
55
57}
static std::unique_ptr< ModifiersDeclaration > Make(const Context &context, const Modifiers &modifiers)
static bool IsVertex(ProgramKind kind)
static bool IsFragment(ProgramKind kind)
static bool IsCompute(ProgramKind kind)