/// <summary> /// Private function used to check and apply dependecies and overrides /// </summary> /// <param name="gameObject"> A reference to the gameobject </param> /// <param name="tag"> Tag of the object </param> private void CheckDependecies(GameObject gameObject, ThemeDependencies.DepedencyTags tag) { if (dependencies.shaderDependecies.ContainsKey(tag)) { ShaderLoader.Load(gameObject, dependencies.shaderDependecies[tag]); } }
private void CreateLanternShader() { string[] vertShader = new string[] { ShaderLoader.Load(@"..\..\LanternVert.vert") }; string[] fragShader = new string[] { ShaderLoader.Load(@"..\..\LanternFrag.frag") }; // Vertex shader var vertexShader = (uint)Gl.glCreateShader(Gl.GL_VERTEX_SHADER); Gl.glShaderSource(vertexShader, 1, vertShader, null); Gl.glCompileShader(vertexShader); // Fragment shader var fragmentShader = (uint)Gl.glCreateShader(Gl.GL_FRAGMENT_SHADER); Gl.glShaderSource(fragmentShader, 1, fragShader, null); Gl.glCompileShader(fragmentShader); // Compile and use shaders lanternShader = (uint)Gl.glCreateProgram(); Gl.glAttachShader(lanternShader, vertexShader); Gl.glAttachShader(lanternShader, fragmentShader); Gl.glLinkProgram(lanternShader); Gl.glUseProgram(lanternShader); Gl.glDeleteShader(fragmentShader); Gl.glDeleteShader(vertexShader); }
private void CreateModelShader() { var vertShader = new string[] { //Gouraud ShaderLoader.Load(@"..\..\LightingVert.vert") }; var fragShader = new string[] { ShaderLoader.Load(@"..\..\LightingFrag.frag") }; // Vertex shader var vertexShader = (uint)Gl.glCreateShader(Gl.GL_VERTEX_SHADER); Gl.glShaderSource(vertexShader, 1, vertShader, null); Gl.glCompileShader(vertexShader); // Fragment shader var fragmentShader = (uint)Gl.glCreateShader(Gl.GL_FRAGMENT_SHADER); Gl.glShaderSource(fragmentShader, 1, fragShader, null); Gl.glCompileShader(fragmentShader); // Compile and use shaders modelShader = (uint)Gl.glCreateProgram(); Gl.glAttachShader(modelShader, vertexShader); Gl.glAttachShader(modelShader, fragmentShader); Gl.glLinkProgram(modelShader); Gl.glDeleteShader(fragmentShader); Gl.glDeleteShader(vertexShader); }
private void LoadAll() { using (logger.BeginScope("Shader setup")) { loader.LoadIncludable("noise", "noise.glsl"); loader.LoadIncludable("decode", "decode.glsl"); SimpleSection = loader.Load("simple_section.vert", "section.frag"); ComplexSection = loader.Load("complex_section.vert", "section.frag"); VaryingHeightSection = loader.Load("varying_height_section.vert", "section.frag"); CrossPlantSection = loader.Load("cross_plant_section.vert", "section.frag"); CropPlantSection = loader.Load("crop_plant_section.vert", "section.frag"); OpaqueLiquidSection = loader.Load("liquid_section.vert", "opaque_liquid_section.frag"); TransparentLiquidSection = loader.Load("liquid_section.vert", "transparent_liquid_section.frag"); Overlay = loader.Load("overlay.vert", "overlay.frag"); Selection = loader.Load("selection.vert", "selection.frag"); ScreenElement = loader.Load("screen_element.vert", "screen_element.frag"); UpdateOrthographicProjection(); logger.LogInformation(Events.ShaderSetup, "Completed shader setup"); } }
private IEnumerator LoadAssets() { FARLogger.Debug("Loading all assets"); if (ShaderLoader.NeedsReload) { yield return(ShaderLoader.Load()); } while (ShaderLoader.State == Progress.InProgress) { yield return(null); } yield return(DoReloadAssets()); Completed = true; loaded = true; }