title: OpenGL ES deprecated in iOS 12 and SKShader
body: <p>I am very new to the concept and use of shaders in SpriteKit.</p>
  
  <p>I found this tutorial on how to render a Mandelbrot fractal with a custom shader file - Fractal.fsh - attached to a Color Sprite's Custom Shader property.</p>
  
  <p><a href="https://www.weheartswift.com/fractals-Xcode-6/" rel="nofollow noreferrer">https://www.weheartswift.com/fractals-Xcode-6/</a></p>
  
  <p>It works fine and I thought to my self that learning about OpenGL ES and custom shaders in SpriteKit would be a fun exercise.</p>
  
  <p>According to Apple though, OpenGL ES is deprecated as of iOS 12.</p>
  
  <p><a href="https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/BestPracticesforShaders/BestPracticesforShaders.html" rel="nofollow noreferrer">https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/BestPracticesforShaders/BestPracticesforShaders.html</a></p>
  
  <p>My question is this:</p>
  
  <p>Does this mean that custom shaders for use in SpriteKit should be written in Metal as of now?</p>
  
  <p>I have tried to figure out how to rewrite the fractal.fsh shader code, referred to in the first link, in Metal but I have not - yet - been able to find any resources on how to convert existing custom SKShader's from OpenGL ES to Metal. However, I am NOT looking for someone to rewrite that code to use Metal, only a pointer in the right direction.</p>
  
  <p><strong>UPDATE:</strong>
  Based on the answer from @Knight0fDragon I will try to clarify my question:</p>
  
  <p>The documentation on the SKShader class states that:</p>
  
  <p>"An SKShader object holds a custom OpenGL ES fragment shader."</p>
  
  <p><a href="https://developer.apple.com/documentation/spritekit/skshader" rel="nofollow noreferrer">https://developer.apple.com/documentation/spritekit/skshader</a></p>
  
  <p>So if a SKShader object holds a custom OpenGL ES fragment shader, what will it hold after the support for OpenGL ES is deprecated?</p>
  
  <p>How would one go on about creating a custom fragment shader to use in SpriteKit if one cannot use OpenGL ES as of iOS 12?
  First I thought that the *.fsh file containing the GLSL code could be replaced with a *.metal file containing equivalent metal code but that assessment was clearly too naive (because I tried and I couldn't assign the *.metal file to the Color Sprite's Custom Shader property)</p>