Bug 1241042 - save frag translated varying names into LinkedProgramInfo. r=jgilbert
Save the frag name info to the LinkedProgramInfo object. Then the fragment shader can be freely detached at any time.
This commit is contained in:
@@ -396,6 +396,10 @@ QueryProgramInfo(WebGLProgram* prog, gl::GLContext* gl)
|
||||
}
|
||||
}
|
||||
|
||||
// Frag outputs
|
||||
|
||||
prog->EnumerateFragOutputs(info->fragDataMap);
|
||||
|
||||
return info.forget();
|
||||
}
|
||||
|
||||
@@ -632,9 +636,9 @@ WebGLProgram::GetFragDataLocation(const nsAString& userName_wide) const
|
||||
}
|
||||
|
||||
const NS_LossyConvertUTF16toASCII userName(userName_wide);
|
||||
|
||||
nsCString mappedName;
|
||||
if (!FindActiveOutputMappedNameByUserName(userName, &mappedName)) {
|
||||
|
||||
if (!LinkInfo()->FindFragData(userName, &mappedName)) {
|
||||
mappedName = userName;
|
||||
}
|
||||
|
||||
@@ -1309,6 +1313,14 @@ WebGLProgram::FindUniformBlockByMappedName(const nsACString& mappedName,
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
WebGLProgram::EnumerateFragOutputs(std::map<nsCString, const nsCString> &out_FragOutputs) const
|
||||
{
|
||||
MOZ_ASSERT(mFragShader);
|
||||
|
||||
mFragShader->EnumerateFragOutputs(out_FragOutputs);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool
|
||||
|
||||
Reference in New Issue
Block a user