示例#1
0
 public Grid()
     : base()
 {
     RegisteredStages.Clear();
     RegisteredStages.Add("VertexColorVertex");
     RegisteredStages.Add("VertexColorFragment");
     Reload();
 }
示例#2
0
        public override void SetProgram()
        {
            if (RegisteredStages.Count == 0)
            {
                shaderProgram = ShadersManager.Instance.GetDefaultShader();
            }
            else
            {
                shaderProgram = ShadersManager.Instance.BuildShaderProgram(RegisteredStages.ToArray());
            }

            //---TODO: Fix bug on ImageTexture that prevents
            for (int i = 0; i < DEFAULT_TEXTURE_SLOT_MAX; i++)
            {
                string texturePath = string.Format(ImageTexture.DEFAULT_TEXTURE_PATH_TEMPLATE, i);

                if (!File.Exists(texturePath))
                {
                    Console.WriteLine("WARNING: texture {0} not found, using default texture", i);
                    if (!File.Exists(Path.Combine(ImageTexture.TEXTURES_FOLDER, DEFAULT_TEXTURE_NAME)))
                    {
                        CreateDefaultTexture();
                    }
                    File.Copy(Path.Combine(ImageTexture.TEXTURES_FOLDER, DEFAULT_TEXTURE_NAME), texturePath);
                }
            }

            ImageTexture tex0 = new ImageTexture(string.Format(ImageTexture.DEFAULT_TEXTURE_FILENAME_TEMPLATE, 0), RotateFlipType.RotateNoneFlipNone);
            ImageTexture tex1 = new ImageTexture(string.Format(ImageTexture.DEFAULT_TEXTURE_FILENAME_TEMPLATE, 1), RotateFlipType.RotateNoneFlipNone);
            ImageTexture tex2 = new ImageTexture(string.Format(ImageTexture.DEFAULT_TEXTURE_FILENAME_TEMPLATE, 2), RotateFlipType.RotateNoneFlipNone);
            ImageTexture tex3 = new ImageTexture(string.Format(ImageTexture.DEFAULT_TEXTURE_FILENAME_TEMPLATE, 3), RotateFlipType.RotateNoneFlipNone);
            ImageTexture tex4 = new ImageTexture(string.Format(ImageTexture.DEFAULT_TEXTURE_FILENAME_TEMPLATE, 4), RotateFlipType.RotateNoneFlipNone);
            ImageTexture tex5 = new ImageTexture(string.Format(ImageTexture.DEFAULT_TEXTURE_FILENAME_TEMPLATE, 5), RotateFlipType.RotateNoneFlipNone);
            ImageTexture tex6 = new ImageTexture(string.Format(ImageTexture.DEFAULT_TEXTURE_FILENAME_TEMPLATE, 6), RotateFlipType.RotateNoneFlipNone);
            ImageTexture tex7 = new ImageTexture(string.Format(ImageTexture.DEFAULT_TEXTURE_FILENAME_TEMPLATE, 7), RotateFlipType.RotateNoneFlipNone);

            Gl.ActiveTexture(TextureUnit.Texture0);
            tex0.Bind();
            tex0.Release();
            Gl.ActiveTexture(TextureUnit.Texture1);
            tex1.Bind();
            tex1.Release();
            Gl.ActiveTexture(TextureUnit.Texture2);
            tex2.Bind();
            tex2.Release();
            Gl.ActiveTexture(TextureUnit.Texture3);
            tex3.Bind();
            tex3.Release();
            Gl.ActiveTexture(TextureUnit.Texture4);
            tex4.Bind();
            tex4.Release();
            Gl.ActiveTexture(TextureUnit.Texture5);
            tex5.Bind();
            tex5.Release();
            Gl.ActiveTexture(TextureUnit.Texture6);
            tex6.Bind();
            tex6.Release();
            Gl.ActiveTexture(TextureUnit.Texture7);
            tex7.Bind();
            tex7.Release();
            //---

            //InitializeTextures();
        }