Просто установлен бета-версия iOS 9 (версия 3), и теперь у меня возникают проблемы с шейдерами SpriteKit. КСН 8 следующий код работал нормально:Скрипач Shader 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];
Редактировать: файл «TheShader.fsh» выглядит следующим образом:
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;
КСН 9 консоль извергает кучу предупреждений в этот формат:
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
^
}
Похоже iOS9 не поддерживает SKDefaultShading и gl_FragCoord. Как найти локальное измерение пикселей без использования gl_FragCoord?
Консоль продолжает повторять это навсегда, замедляя работу устройства. Вот скриншот:
Если я прокомментирую строки выше, которые говорят «проблемы совместимости с iOS9 здесь», тогда проблема решает сам, но тогда у меня нет никаких шейдеров.
У кого-нибудь еще есть эта проблема? Значительная помощь будет оценена.
Это более чем вероятно ошибка на их стороне.Сегодня я обновлял некоторые вещи и сталкивался с этими проблемами. – Tony
Выяснил ли это? Запуск этой проблемы на Xcode 7.0 и iOS 9.1 публичной бета-версии 1. – CloakedEddy
Пока нет, сообщите об ошибке, если сможете. Чем больше отчетов, тем быстрее они могут это исправить! – user2821647