diff --git a/shadertoy.xcodeproj/project.pbxproj b/shadertoy.xcodeproj/project.pbxproj
index 03300b0..0acdfc2 100644
--- a/shadertoy.xcodeproj/project.pbxproj
+++ b/shadertoy.xcodeproj/project.pbxproj
@@ -7,10 +7,10 @@
objects = {
/* Begin PBXBuildFile section */
- 4B2FD9E31BC16FC20026F317 /* shaders in Resources */ = {isa = PBXBuildFile; fileRef = 4B2FD9E21BC16FC20026F317 /* shaders */; settings = {ASSET_TAGS = (); }; };
+ 4B2FD9E31BC16FC20026F317 /* shaders in Resources */ = {isa = PBXBuildFile; fileRef = 4B2FD9E21BC16FC20026F317 /* shaders */; };
4B375CA31B85038F00583F2B /* ShaderCanvasViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B375CA21B85038F00583F2B /* ShaderCanvasViewController.m */; };
4B375CA91B85DCF600583F2B /* presets in Resources */ = {isa = PBXBuildFile; fileRef = 4B375CA81B85DCF600583F2B /* presets */; };
- 4B759EDE1BADDF93001563AA /* VRSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B759EDD1BADDF93001563AA /* VRSettings.m */; settings = {ASSET_TAGS = (); }; };
+ 4B759EDE1BADDF93001563AA /* VRSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B759EDD1BADDF93001563AA /* VRSettings.m */; };
4B8610B61B8C7B6900928AD5 /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8610B51B8C7B6900928AD5 /* AboutViewController.m */; };
4B8610BA1B94590E00928AD5 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8610B91B94590E00928AD5 /* Utils.m */; };
4B8610BE1B947F9600928AD5 /* SoundPassPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8610BD1B947F9600928AD5 /* SoundPassPlayer.m */; };
@@ -452,7 +452,7 @@
ENABLE_BITCODE = NO;
INFOPLIST_FILE = shadertoy/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = com.beautypi.shadertoy;
+ PRODUCT_BUNDLE_IDENTIFIER = net.reinder.shadertoy;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
@@ -468,7 +468,7 @@
ENABLE_BITCODE = NO;
INFOPLIST_FILE = shadertoy/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = com.beautypi.shadertoy;
+ PRODUCT_BUNDLE_IDENTIFIER = net.reinder.shadertoy;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
diff --git a/shadertoy/Info.plist b/shadertoy/Info.plist
index 18a4311..73996fd 100644
--- a/shadertoy/Info.plist
+++ b/shadertoy/Info.plist
@@ -19,7 +19,7 @@
CFBundleSignature
????
CFBundleVersion
- 10
+ 11
Fabric
APIKey
diff --git a/shadertoy/shaders/fragment_base_uniforms.glsl b/shadertoy/shaders/fragment_base_uniforms.glsl
index e72f86b..be28c38 100644
--- a/shadertoy/shaders/fragment_base_uniforms.glsl
+++ b/shadertoy/shaders/fragment_base_uniforms.glsl
@@ -1,3 +1,6 @@
+#extension GL_EXT_shader_texture_lod : enable
+#extension GL_OES_standard_derivatives : enable
+
precision highp float;
precision highp int;
precision mediump sampler2D;
@@ -11,7 +14,3 @@ uniform vec3 iChannelResolution[4]; // channel resolution (in pixels
uniform float iChannelTime[4]; // channel playback time (in sec)
uniform vec2 ifFragCoordOffsetUniform; // used for tiled based hq rendering
-
-float fwidth(float p){return 0.;} vec2 fwidth(vec2 p){return vec2(0.);} vec3 fwidth(vec3 p){return vec3(0.);}
-float dFdx(float p){return 0.;} vec2 dFdx(vec2 p){return vec2(0.);} vec3 dFdx(vec3 p){return vec3(0.);}
-float dFdy(float p){return 0.;} vec2 dFdy(vec2 p){return vec2(0.);} vec3 dFdy(vec3 p){return vec3(0.);}