/// <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]);
     }
 }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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;
        }