internal static extern bool ShaderVariation_HasTextureUnit(IntPtr handle, TextureUnit unit);
/// <summary> /// Return whether uses a texture unit (only for pixel shaders.) Not applicable on OpenGL, where this information is contained in ShaderProgram instead. /// </summary> public bool HasTextureUnit(TextureUnit unit) { Runtime.ValidateRefCounted(this); return(ShaderVariation_HasTextureUnit(handle, unit)); }
internal static extern IntPtr Material_GetTextureUnitName(TextureUnit unit);
/// <summary> /// Return name for texture unit. /// </summary> public static string GetTextureUnitName(TextureUnit unit) { Runtime.Validate(typeof(Material)); return(Marshal.PtrToStringAnsi(Material_GetTextureUnitName(unit))); }
/// <summary> /// Return texture by unit. /// </summary> public Texture GetTexture(TextureUnit unit) { Runtime.ValidateRefCounted(this); return(Runtime.LookupObject <Texture> (Material_GetTexture(handle, unit))); }
internal static extern IntPtr Material_GetTexture(IntPtr handle, TextureUnit unit);
/// <summary> /// Set texture. /// </summary> public void SetTexture(TextureUnit unit, Texture texture) { Runtime.ValidateRefCounted(this); Material_SetTexture(handle, unit, (object)texture == null ? IntPtr.Zero : texture.Handle); }
internal static extern void Material_SetTexture(IntPtr handle, TextureUnit unit, IntPtr texture);
public void SetTextureName(TextureUnit unit, string name) { UrhoString nameStr = new UrhoString(name); switch (unit) { case TextureUnit.Diffuse: TextureName0 = nameStr; break; case TextureUnit.Normal: TextureName1 = nameStr; break; case TextureUnit.Specular: TextureName2 = nameStr; break; case TextureUnit.Emissive: TextureName3 = nameStr; break; case TextureUnit.Environment: TextureName4 = nameStr; break; case TextureUnit.Volumemap: TextureName5 = nameStr; break; case TextureUnit.Custom1: TextureName6 = nameStr; break; case TextureUnit.Custom2: TextureName7 = nameStr; break; #if !IOS && !ANDROID case TextureUnit.Lightramp: TextureName8 = nameStr; break; case TextureUnit.Lightshape: TextureName9 = nameStr; break; case TextureUnit.Shadowmap: TextureName10 = nameStr; break; case TextureUnit.Faceselect: TextureName11 = nameStr; break; case TextureUnit.Indirection: TextureName12 = nameStr; break; case TextureUnit.Depthbuffer: TextureName13 = nameStr; break; case TextureUnit.Lightbuffer: TextureName14 = nameStr; break; case TextureUnit.Zone: TextureName15 = nameStr; break; #endif default: throw new InvalidOperationException("Invalid texture unit"); } }