From 205dc4e4ec1ae98a1ae6791030666d9000b7ae5c Mon Sep 17 00:00:00 2001 From: Keith Newton Date: Sun, 4 Dec 2016 17:07:10 -0500 Subject: [PATCH] Fixed processing #include's when preprocessing HLSL --- glslang/MachineIndependent/parseVersions.h | 1 + glslang/MachineIndependent/preprocessor/Pp.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index 967d352a..acb57507 100755 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -110,6 +110,7 @@ public: void getPreamble(std::string&); bool relaxedErrors() const { return (messages & EShMsgRelaxedErrors) != 0; } bool suppressWarnings() const { return (messages & EShMsgSuppressWarnings) != 0; } + bool isReadingHLSL() const { return (messages & EShMsgReadHlsl) == EShMsgReadHlsl; } TInfoSink& infoSink; diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index 3c6d0122..824a69a9 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -897,7 +897,9 @@ int TPpContext::readCPPline(TPpToken* ppToken) token = CPPifdef(0, ppToken); break; case PpAtomInclude: - parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include"); + if(!parseContext.isReadingHLSL()) { + parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include"); + } token = CPPinclude(ppToken); break; case PpAtomLine: