mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Invalidate all WebGLUniformLocation values on program relink
This commit is contained in:
parent
8fabc6660a
commit
b64232d77b
4 changed files with 36 additions and 15 deletions
|
@ -436,7 +436,10 @@ impl WebGLRenderingContext {
|
|||
None => return,
|
||||
};
|
||||
match self.current_program.get() {
|
||||
Some(ref program) if program.id() == location.program_id() => {}
|
||||
Some(ref program) if
|
||||
program.id() == location.program_id() &&
|
||||
program.link_generation() == location.link_generation()
|
||||
=> {}
|
||||
_ => return self.webgl_error(InvalidOperation),
|
||||
}
|
||||
handle_potential_webgl_error!(self, f(location));
|
||||
|
@ -3612,7 +3615,12 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
) -> JSVal {
|
||||
// FIXME(nox): https://github.com/servo/servo/issues/21133
|
||||
|
||||
if program.is_deleted() || !program.is_linked() || program.id() != location.program_id() {
|
||||
if
|
||||
program.is_deleted() ||
|
||||
!program.is_linked() ||
|
||||
program.id() != location.program_id() ||
|
||||
program.link_generation() != location.link_generation()
|
||||
{
|
||||
self.webgl_error(InvalidOperation);
|
||||
return NullValue();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue