/// <summary>Do a texture lookup with projection. The texture coordinates consumed from P, /// not including the last component of P, are divided by the last component of P. /// The resulting 3rd component of P is used as Dref. /// After these values are computed,texture lookup proceeds as in texture.</summary> protected static float textureProj(sampler2DShadow sampler, vec4 P) { throw _invalidAccess; }
protected float4 Shadow2DProj(sampler2DShadow sampler, float4 coord, float bias) { return(new float4(1, 1, 1, 1)); }
protected extern ivec2 textureSize(sampler2DShadow sampler, int lod);
/// <summary> /// Do a texture lookup as in texture but with explicit LOD; lod specifies λbase and sets the partial derivatives as follows. /// (See section 3.8.11 “Texture Minification” and equation 3.17 in the OpenGL Graphics SystemSpecification.) /// ∂u/∂x = 0; ∂v/∂x = 0; ∂w/∂x = 0; ∂u/∂y = 0; ∂v/∂y = 0; ∂w/∂y = 0; /// </summary> protected static float textureLod(sampler2DShadow sampler, vec3 P, float lod) { throw _invalidAccess; }
public static vec4 texture(Location location, sampler2DShadow sampler, vec3 P, float bias = 0) { return(new vec4(0)); }
protected static ivec2 textureSize(sampler2DShadow sampler, int lod) { throw _invalidAccess; }
/// <summary> Do a texture lookup as in texture but with explicit gradients. /// The partial derivatives of P are with respect to window x and window y. /// ∂s/∂x = ∂P.s/∂x; ∂s/∂y = ∂P.s/∂y; ∂t/∂x = ∂P.t/∂x; ∂t/∂y = ∂P.t/∂y; ∂r/∂x = 0; ∂r/∂y = 0;</summary> protected static float textureGrad(sampler2DShadow sampler, vec3 P, vec2 dPdx, vec2 dPdy) { throw _invalidAccess; }
protected extern float textureProjGradOffset(sampler2DShadow sampler, vec4 p, vec2 dPdx, vec2 dPdy, ivec2 offset);
protected extern float texture(sampler2DShadow sampler, vec3 p, float bias = 0);
protected extern float textureProjLodOffset(sampler2DShadow sampler, vec4 p, float lod, ivec2 offset);
protected extern float textureProGrad(sampler2DShadow sampler, vec4 p, vec2 dPdx, vec2 dPdy);
protected extern float textureProjLod(sampler2DShadow sampler, vec4 p, float lod);
protected extern vec4 textureLodOffset(sampler2DShadow sampler, int p, int lod, ivec2 offset);
protected extern float textureProjOffset(sampler2DShadow sampler, vec4 p, ivec2 offset, float bias = 0);
/// <summary> Do a projective texture lookup as described in textureProj offset by offset as described in textureOffset. </summary> protected static float textureProjOffset(sampler2DShadow sampler, vec4 P, ivec2 offset, float bias) { throw _invalidAccess; }
protected extern float textureProj(sampler2DShadow sampler, vec2 p, float bias = 0);
/// <summary> /// Returns the mipmap array(s) that would be accessed in the x component of the return value. /// Returns the computed level of detail relative to the base level in the y component of the return value. /// If called on an incomplete texture, the results are undefined. /// </summary> protected static vec2 textureQueryLod(sampler2DShadow sampler, vec2 P) { throw _invalidAccess; }
/// <summary> Do a texture lookup as in texture but with offset added to the (u,v,w) texel coordinates before looking up each texel. /// The offset value must be a constant expression. A limited range of offset values are supported; /// the minimum and maximum offset values are implementation-dependent and given by MIN_PROGRAM_TEXEL_OFFSET and MAX_PROGRAM_TEXEL_OFFSET, respectively. /// Note that offset does not apply to the layer coordinate for texture arrays. This is explained in detail in section 3.8.11 /// “Texture Minification” of the OpenGL Graphics System Specification, where offset is (∂u ,∂v ,∂w). /// </summary> protected internal static float TextureOffset(sampler2DShadow sampler, vec3 P, ivec2 offset, float bias) { throw _invalidAccess; }
/// <summary> /// Use the texture coordinate P to do a texture lookup in the texture currently bound to sampler. /// When compare is present, it is used as Dref and the array layer comes from P.w. /// When compare is not present, the last component of P is used as Dref and /// the array layer comes from the second to last component of P. /// (The second component of P isunused for 1D shadow lookups.) /// </summary> protected static float texture(sampler2DShadow sampler, vec3 P, float bias) { throw _invalidAccess; }
/// <summary>Do a texture lookup both projectively, as described in TextureProj, and with explicit gradient as /// described in TextureGrad. The partial derivatives dPdx and dPdy are assumed to be already projected.</summary> protected internal static float TextureProjGrad(sampler2DShadow sampler, vec4 P, vec2 dPdx, vec2 dPdy) { throw _invalidAccess; }
/// <summary>Do a texture lookup with both explicit gradient and offset, as described in textureGrad and textureOffset. </summary> protected static float textureGradOffset(sampler2DShadow sampler, vec3 P, vec2 dPdx, vec2 dPdy, ivec2 offset) { throw _invalidAccess; }
/// <summary> Do an offset texture lookup with explicit LOD. See TextureLod and TextureOffset.</summary> protected internal static float TextureProjLod(sampler2DShadow sampler, vec4 P, float lod) { throw _invalidAccess; }
/// <summary> Do an offset texture lookup with explicit LOD. See textureLod and textureOffset.</summary> protected static float textureLodOffset(sampler2DShadow sampler, vec3 P, float lod, ivec2 offset) { throw _invalidAccess; }
/// <summary> Do a projective texture lookup as described in TextureProj offset by offset as described in TextureOffset. </summary> protected internal static float TextureProjOffset(sampler2DShadow sampler, vec4 P, ivec2 offset) { throw _invalidAccess; }
protected float4 Shadow2D(sampler2DShadow sampler, float3 coord) { return(new float4(1, 1, 1, 1)); }
/// <summary> /// Use the texture coordinate P to do a texture lookup in the texture currently bound to sampler. /// When compare is present, it is used as Dref and the array layer comes from P.w. /// When compare is not present, the last component of P is used as Dref and /// the array layer comes from the second to last component of P. /// (The second component of P isunused for 1D shadow lookups.) /// </summary> protected internal static float Texture(sampler2DShadow sampler, vec3 P) { throw _invalidAccess; }
protected float4 Shadow2DProjLod(sampler2DShadow sampler, float4 coord, float lod) { return(new float4(1, 1, 1, 1)); }
protected extern float textureLod(sampler2DShadow sampler, vec3 p, float lod);