Właśnie zainstalowałem open beta iOS 9 (wersja 3), a teraz mam mnóstwo problemów z shaderów SpriteKit. IOS 8 następujący kod pracował dobrze:Awaria shadera SpriteKit iOS 9: SKDefaultShading, gl_FragCoord
_fontShader = [SKShader shaderWithFileNamed:@"TheShader"]; // TODO: iOS9 compatibility issues here
_fontUniform = [SKUniform uniformWithName:@"labelBase" float:0];
[self.fontShader addUniform:self.fontUniform]; // TODO: iOS9 compatibility issues here
_fontEffects = [SKEffectNode node];
self.fontEffects.shader = self.fontShader; // TODO: iOS9 compatibility issues here
self.fontEffects.shouldEnableEffects = YES;
self.fontEffects.shouldCenterFilter = NO;
self.fontEffects.shouldRasterize = YES;
[self addChild:self.fontEffects];
Edycja: plik „TheShader.fsh” wygląda następująco:
float yPos = gl_FragCoord.y - labelBase; // iOS 9 Compatibility issues here
float gradient = 0.35*(yPos/u_sprite_size.y); // ranges from 0 at base to 0.35 at top
vec4 color = SKDefaultShading(); // the current label color (iOS 9 Compatibility issues here)
color = vec4(gradient + color.r, gradient + color.g, gradient + color.b, color.a);
color.rgb *= color.a; // set background to alpha 0
gl_FragColor = color;
na iOS 9 konsola jest wypluwają stos ostrzeżenia w ten format:
2015-07-12 22:43:17.717 ReconInForce[599:110531] Jet: Error Domain=MTLLibraryErrorDomain Code=3 "Compilation failed:
program_source:8:18: error: use of undeclared identifier 'gl_FragCoord'
float yPos = gl_FragCoord.y - labelBase[0];
^
program_source:11:18: error: use of undeclared identifier 'SKDefaultShading'
vec4 color = SKDefaultShading(); // the current label color
^
" UserInfo=0x158c084b0 {NSLocalizedDescription=Compilation failed:
program_source:8:18: error: use of undeclared identifier 'gl_FragCoord'
float yPos = gl_FragCoord.y - labelBase[0];
^
program_source:11:18: error: use of undeclared identifier 'SKDefaultShading'
vec4 color = SKDefaultShading(); // the current label color
^
}
Wygląda iOS9 nie wspiera SKDefaultShading i gl_FragCoord. Jak znaleźć lokalny wymiar pikseli bez użycia gl_FragCoord?
Konsola kontynuuje powtarzanie tego na zawsze, spowalniając działanie urządzenia. Oto zrzut ekranu:
Jeśli skomentuję powyższe wiersze, które mówią "tutaj problemy z kompatybilnością iOS9", problem sam się rozwiązuje, ale nie mam żadnych shaderów.
Ktoś jeszcze ma ten problem? Znaczna pomoc byłaby doceniona.
Jest to więcej niż prawdopodobne, błąd po ich stronie.Aktualizowałem niektóre rzeczy dzisiaj i również natknąłem się na te problemy. – Tony
Czy to wymyśliłeś? Uruchamianie tego samego wydania w Xcode 7.0 i iOS 9.1 public beta 1. – CloakedEddy
Jeszcze nie, jeśli to możliwe, zgłoś zgłoszenie błędu. Im więcej raportów, tym szybciej mogą to naprawić! – user2821647