通过Xcode构建模拟GLSL#导入
我的一些GLSL片段着色器共享公共函数和常量。我在GLSL中找不到任何类似导入的功能(这是可以理解的),但如果我能在Xcode的构建阶段模仿它,那就太酷了。这可能很简单,只需在将片段着色器复制到资源文件夹之前,将一个公共文件附加到所有片段着色器通过Xcode构建模拟GLSL#导入,xcode,build,build-rules,Xcode,Build,Build Rules,我的一些GLSL片段着色器共享公共函数和常量。我在GLSL中找不到任何类似导入的功能(这是可以理解的),但如果我能在Xcode的构建阶段模仿它,那就太酷了。这可能很简单,只需在将片段着色器复制到资源文件夹之前,将一个公共文件附加到所有片段着色器 但是我的剧本很弱。有人想帮我或给我指出正确的方向吗?我对XCode不太了解,但在您自己的代码中实现它应该不会太困难 如果逐行加载代码,这非常容易。加载每一行时,检查is是否具有格式#import“filename”。如果是,则在继续之前加载该文件。差不多
但是我的剧本很弱。有人想帮我或给我指出正确的方向吗?我对XCode不太了解,但在您自己的代码中实现它应该不会太困难 如果逐行加载代码,这非常容易。加载每一行时,检查is是否具有格式
#import“filename”
。如果是,则在继续之前加载该文件。差不多
这个C++代码:
string loadGLSL(string fileName)
{
ifstream inputStream(fileName);
string fileContents, line;
while(inputFile.good())
{
getline(inputStream, line);
if(isImportDirective(line))
loadGLSL(getFileNamePart(line));
else
fileContents += line + '\n';
}
}
我将让您了解isImportDirective
和getFileNamePart
的详细信息,但这应该不会太难。我也没有注意同一个文件的多个#导入
-如果您希望实现与Objective-C的#导入
类似的功能,那么应该检查这种冗余
当然,您也可以先加载整个文件,然后搜索字符串#import
,然后交换该行所需的文件内容。你认为什么最管用
希望这能有所帮助。我对XCode不太了解,但在您自己的代码中实现它应该不会太困难 如果逐行加载代码,这非常容易。加载每一行时,检查is是否具有格式
#import“filename”
。如果是,则在继续之前加载该文件。差不多
这个C++代码:
string loadGLSL(string fileName)
{
ifstream inputStream(fileName);
string fileContents, line;
while(inputFile.good())
{
getline(inputStream, line);
if(isImportDirective(line))
loadGLSL(getFileNamePart(line));
else
fileContents += line + '\n';
}
}
我将让您了解isImportDirective
和getFileNamePart
的详细信息,但这应该不会太难。我也没有注意同一个文件的多个#导入
-如果您希望实现与Objective-C的#导入
类似的功能,那么应该检查这种冗余
当然,您也可以先加载整个文件,然后搜索字符串#import
,然后交换该行所需的文件内容。你认为什么最管用
希望这能有所帮助。Heh!我甚至没有考虑在我的应用程序中做这件事。好办法!事实上,如果你在谷歌上搜索
GLSL#include
(而不是#import
),这个想法会出现很多。以防你想看到一些稍微不同的方法。嘿!我甚至没有考虑在我的应用程序中做这件事。好办法!事实上,如果你在谷歌上搜索GLSL#include
(而不是#import
),这个想法会出现很多。以防你想看到一些稍微不同的方法。