Пример #1
0
        private void InitializeTexture(int textureId)
        {
            string texturePath = string.Format(ImageTexture.DEFAULT_TEXTURE_PATH_TEMPLATE, textureId);

            if (!File.Exists(texturePath))
            {
                File.Copy("Resources/Textures/128-128-128.png", texturePath);
            }

            string       textureFileName = string.Format(ImageTexture.DEFAULT_TEXTURE_FILENAME_TEMPLATE, textureId);
            ImageTexture tmpImageTexture = new ImageTexture(textureFileName, RotateFlipType.RotateNoneFlipNone);

            Console.WriteLine(tmpImageTexture.TexturePointer);
            TextureUnit tu = ImageTexture.TEXTURE_UNITS_MAPPING[textureId];

            Gl.ActiveTexture(tu);
            tmpImageTexture.Bind();
            tmpImageTexture.Release();
            Console.WriteLine(textureId);
            Console.WriteLine(tu);
            Console.WriteLine(textureFileName);
        }
Пример #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();
        }