public SamplerObject GetSampler(MatlEnums.ParamId paramId) { if (!samplerByParamId.ContainsKey(paramId)) { return(defaultSampler); } // TODO: Log this error? return(samplerByParamId[paramId]); }
// TODO: This should be a part of SSBHLib private MatlAttribute CreateTexture(MatlEnums.ParamId paramId, string value) { return(new MatlAttribute { ParamId = paramId, DataType = MatlEnums.ParamDataType.String, DataObject = new MatlAttribute.MatlString { Text = value } }); }
private void SetFloat(UniformBlock uniformBlock, MatlEnums.ParamId paramId, float defaultValue) { var name = paramId.ToString(); if (floatByParamId.ContainsKey(paramId)) { var value = floatByParamId[paramId]; uniformBlock.SetValue(name, value); } else { uniformBlock.SetValue(name, defaultValue); } }
private void SetBool(UniformBlock uniformBlock, MatlEnums.ParamId paramId, bool defaultValue) { var name = paramId.ToString(); if (boolByParamId.ContainsKey(paramId)) { var value = boolByParamId[paramId]; uniformBlock.SetValue(name, value ? 1 : 0); } else { uniformBlock.SetValue(name, defaultValue ? 1 : 0); } }
private void AddFloat(UniformBlock genericMaterial, MatlEnums.ParamId paramId, float defaultValue) { var name = paramId.ToString(); if (floatByParamId.ContainsKey(paramId)) { var value = floatByParamId[paramId]; genericMaterial.SetValue(name, value); } else { genericMaterial.SetValue(name, defaultValue); } }
private void AddBool(UniformBlock genericMaterial, MatlEnums.ParamId paramId, bool defaultValue) { var name = paramId.ToString(); if (boolByParamId.ContainsKey(paramId)) { var value = boolByParamId[paramId]; genericMaterial.SetValue(name, value ? 1 : 0); } else { genericMaterial.SetValue(name, defaultValue ? 1 : 0); } }
private void SetVec4(UniformBlock uniformBlock, MatlEnums.ParamId paramId, Vector4 defaultValue, bool isDebug = false) { // Convert parameters into colors for easier visualization. var name = paramId.ToString(); if (isDebug) { name = "vec4Param"; } if (Vec4ParamsMaterialAnimation.ContainsKey(paramId)) { var value = Vec4ParamsMaterialAnimation[paramId]; uniformBlock.SetValue(name, value); } else if (vec4ByParamId.ContainsKey(paramId)) { var value = vec4ByParamId[paramId]; uniformBlock.SetValue(name, value); } else if (boolByParamId.ContainsKey(paramId)) { var value = boolByParamId[paramId]; if (value) { uniformBlock.SetValue(name, new Vector4(1, 0, 1, 0)); } else { uniformBlock.SetValue(name, new Vector4(0, 0, 1, 0)); } } else if (floatByParamId.ContainsKey(paramId)) { var value = floatByParamId[paramId]; uniformBlock.SetValue(name, new Vector4(value, value, value, 0)); } else { uniformBlock.SetValue(name, defaultValue); } }
private Texture GetTexture(MatlEnums.ParamId paramId) { // Set a default to avoid unnecessary conditionals in the shader. if (!textureNameByParamId.ContainsKey(paramId)) { return(defaultTextureByParamId[paramId]); } var textureName = textureNameByParamId[paramId]; if (TextureByName.ContainsKey(textureName)) { return(TextureByName[textureName]); } if (DefaultTexturesByName.ContainsKey(textureName)) { return(DefaultTexturesByName[textureName]); } else { return(DefaultTextures.Instance.DefaultWhite); } }
public static Texture GetTexture(RMaterial material, MatlEnums.ParamId paramId) { // Set a default to avoid unnecessary conditionals in the shader. if (!material.HasTexture(paramId)) { return(defaultTextureByParamId[paramId]); } var textureName = material.GetTextureName(paramId); if (material.TextureByName.ContainsKey(textureName)) { return(material.TextureByName[textureName].Texture); } if (defaultTexturesByName.ContainsKey(textureName)) { return(defaultTexturesByName[textureName]); } else { return(DefaultTextures.Instance.Value.DefaultWhite); } }
public void UpdateBoolean(MatlEnums.ParamId paramId, bool value) { boolByParamId[paramId] = value; shouldUpdateUniformBlock = true; }
public void UpdateFloat(MatlEnums.ParamId paramId, float value) { floatByParamId[paramId] = value; shouldUpdateUniformBlock = true; }
public void UpdateTexture(MatlEnums.ParamId paramId, string value) { textureNameByParamId[paramId] = value; shouldUpdateTextures = true; }
public void UpdateVec4(MatlEnums.ParamId paramId, Vector4 value) { vec4ByParamId[paramId] = value; shouldUpdateUniformBlock = true; }
public void UpdateSampler(MatlEnums.ParamId paramId, SamplerData sampler) { samplerUpdates.Enqueue(new Tuple <MatlEnums.ParamId, SamplerData>(paramId, sampler)); shouldUpdateTexturesAndSamplers = true; }
public string GetTextureName(MatlEnums.ParamId paramId) => textureNameByParamId[paramId];
public bool HasTexture(MatlEnums.ParamId paramId) => textureNameByParamId.ContainsKey(paramId);