2017-12-26 27 views
2

C/C++と同等のもの - HLSLの#pragma onceのようなものがありますか?HLSL #pragma once equivalent?

私は(不自然な例として)欲しい:

// ./dependency.hlsl 
float x() { return 0; } 

// ./shader.hlsl 
#include "./dependency.hlsl" // (./ unnecessary; for question readability) 
#include "./dependency.hlsl" 

error X3003: redefinition of 'x'で失敗しないように。ファイルの先頭にある#pragma onceはエラーではなくwarning X3568: 'once' : unknown pragma ignoredで、何もしません。

+0

を「HLSLは」「ガードが含まれる」Googleでのみ135結果が現れ、関連するそのどれと「HLSL」「プラグマかつては、」C++のものをもたらします。うまくいけば、Googleの神々がこれをキャッチします。また、より良いアプローチ(私はかなり初心者です)があるかどうかわからないので、私の提供された答えは最適ではありません。 – Warty

答えて

3

C/C++マクロのようなインクルードガードを使用します。不自然次のようにdependency.hlslはなります

#ifndef __DEPENDENCY_HLSL__ 
#define __DEPENDENCY_HLSL__ 

float x() { return 0; } 

#endif // __DEPENDENCY_HLSL__