第三个例子是shader的创建等等。代码依然简单。但是延伸出来非常多。
shader系统最开始可以注册一个回调函数来调适错误。
NiShaderFactory::RegisterErrorCallback
接着需要为系统指明那里有shader资源
NiShaderFactory::AddShaderProgramFileDirectory
然后通过调用加载和解析函数来解析所有的shader.同时可以指定是否解析子目录的shader
NiShaderFactory::LoadAndRunParserLibrary
内部通过NSFParserLib_RunShaderParser来解析所有shader
各种不一样的shader.GB已经封装了很多对应的类来解析了。
接着会调用各自的lib.来执行shader
NiShaderFactory::LoadAndRegisterShaderLibrary
看起来他是支持很多类型的shader.
cg.fx.和本身的nsf,nsb.既然这样那自然用fx了。