本文整理汇总了C++中VertexShader::init方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexShader::init方法的具体用法?C++ VertexShader::init怎么用?C++ VertexShader::init使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VertexShader
的用法示例。
在下文中一共展示了VertexShader::init方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WaterPlaneShaderProgramAndParameters
const RightDrawer::WaterPlaneShaderProgramAndParameters& RightDrawer::getWaterPlaneProgram(WaterPlaneShaderProgramIndex params)
{
boolean bNew;
auto it = waterPlaneShaderPrograms.insert(bNew, params);
if(!bNew)
return *it->val;
it->val = new WaterPlaneShaderProgramAndParameters();
boolean bNewPS;
auto psIt = waterPlanePixelShaders.insert(bNewPS, params.ps);
PixelShader* ps;
if(bNewPS){
ps = new PixelShader(*this);
String code = getWaterPlanePixelShaderCode(params.ps);
ps->init(code);
psIt->val = ps;
}
else
ps = psIt->val;
boolean bNewVS;
auto vsIt = meshVertexShaders.insert(bNewVS, params.vs);
VertexShader* vs;
if(bNewVS){
vs = new VertexShader(*this);
String code = getMeshVertexShaderCode(params.vs);
vs->init(code);
vsIt->val = vs;
}
else
vs = vsIt->val;
ShaderProgram* prog = new ShaderProgram(*this);
Array<String> args = getVertexShaderAttributesCode((EVertexFormat)params.vs.format);
Array<ConstString> arr;
foreach(it, args)
arr.push(it->toConst());
prog->init(*vs, *ps, arr.constRange());
it->val->init(prog);
return *it->val;
}