/// <summary> /// Sets a material parameter value by name. /// </summary> /// <param name="paramName"></param> /// <param name="value"></param> /// <returns>true if successful, otherwise false.</returns> public bool SetParam(string paramName, Color value) { Vec3 vecValue = new Vec3(value.R, value.G, value.B); var result = NativeMaterialMethods.SetGetMaterialParamVec3(Handle, paramName, ref vecValue, false); Opacity = value.A; return(result); }
public static Material Get(EntityBase entity, int slot = 0) { #if !(RELEASE && RELEASE_DISABLE_CHECKS) if (entity == null) { throw new ArgumentNullException("entity"); } #endif var ptr = NativeMaterialMethods.GetMaterial(entity.GetIEntity(), slot); return(TryGet(ptr)); }
/// <summary> /// Attempts to get parameter value by name. /// </summary> /// <param name="paramName"></param> /// <param name="value"></param> /// <returns>true if successful, otherwise false.</returns> public bool TryGetParam(string paramName, out Color value) { Vec3 vecVal = Vec3.Zero; bool result = NativeMaterialMethods.SetGetMaterialParamVec3(Handle, paramName, ref vecVal, true); value = new Color(); value.R = vecVal.X; value.G = vecVal.Y; value.B = vecVal.Z; value.A = Opacity; return(result); }
public static void Set(EntityBase entity, Material mat, int slot = 0) { #if !(RELEASE && RELEASE_DISABLE_CHECKS) if (entity == null) { throw new ArgumentNullException("entity"); } if (mat == null) { throw new ArgumentNullException("mat"); } #endif NativeMaterialMethods.SetMaterial(entity.GetIEntity(), mat.Handle, slot); }
public static SurfaceType Get(string name) { return(TryGet(NativeMaterialMethods.GetSurfaceTypeByName(name))); }
public static SurfaceType Get(int id) { return(TryGet(NativeMaterialMethods.GetSurfaceTypeById(id))); }
/// <summary> /// Gets a shader parameter name by index. /// See <see cref="ShaderParamCount"/> /// </summary> /// <param name="index"></param> /// <returns>The shader parameter name.</returns> public string GetShaderParamName(int index) { return(NativeMaterialMethods.GetShaderParamName(Handle, index)); }
/// <summary> /// Sets a shader parameter value by name. /// </summary> /// <param name="paramName"></param> /// <param name="newVal"></param> public void SetShaderParam(string paramName, Color newVal) { NativeMaterialMethods.SetShaderParam(Handle, paramName, newVal); }
/// <summary> /// Attempts to get parameter value by name. /// </summary> /// <param name="paramName"></param> /// <param name="value"></param> /// <returns>true if successful, otherwise false.</returns> public bool TryGetParam(string paramName, out float value) { value = 0; return(NativeMaterialMethods.SetGetMaterialParamFloat(Handle, paramName, ref value, true)); }
/// <summary> /// Sets a material parameter value by name. /// </summary> /// <param name="paramName"></param> /// <param name="value"></param> /// <returns>true if successful, otherwise false.</returns> public bool SetParam(string paramName, float value) { return(NativeMaterialMethods.SetGetMaterialParamFloat(Handle, paramName, ref value, false)); }
/// <summary> /// Clones a material /// </summary> /// <param name="subMaterial">If negative, all sub materials are cloned, otherwise only the specified slot is</param> /// <returns>The new clone.</returns> public Material Clone(int subMaterial = -1) { var ptr = NativeMaterialMethods.CloneMaterial(Handle, subMaterial); return(TryGet(ptr)); }
/// <summary> /// Gets a submaterial by slot. /// </summary> /// <param name="slot"></param> /// <returns>The submaterial, or null if failed.</returns> public Material GetSubmaterial(int slot) { var ptr = NativeMaterialMethods.GetSubMaterial(Handle, slot); return(TryGet(ptr)); }
public static Material Load(string name, bool makeIfNotFound = true, bool nonRemovable = false) { var ptr = NativeMaterialMethods.LoadMaterial(name, makeIfNotFound, nonRemovable); return(TryGet(ptr)); }
public static Material Find(string name) { var ptr = NativeMaterialMethods.FindMaterial(name); return(TryGet(ptr)); }
public static Material Create(string name, bool makeIfNotFound = true, bool nonRemovable = false) { var ptr = NativeMaterialMethods.CreateMaterial(name); return(TryAdd(ptr)); }