Clandestine.Texture.createNewGlTexture C# (CSharp) Method

createNewGlTexture() public method

public createNewGlTexture ( ) : void
return void
        public void createNewGlTexture()
        {
            Gl.glEnable(Gl.GL_TEXTURE_2D);

            Gl.glGenTextures(1, out TexPointer);

            if (TexPointer == 0)
                throw new Exception("The OpenGL context failed to create a new texture.");

            lock (this.bitmap)
            {
                Bitmap bmpTex = resizeIfNecessary(this.bitmap);
                BitmapData bd = bmpTex.LockBits(new Rectangle(0, 0, bmpTex.Width, bmpTex.Height),
                    ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);

                Gl.glDeleteTextures(1, ref TexPointer);
                Gl.glBindTexture(Gl.GL_TEXTURE_2D, TexPointer);

                Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_REPEAT);
                Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_REPEAT);
                Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_NEAREST); // THE
                Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_NEAREST); // PIXELS!

                // Actually upload the data.
                Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Gl.GL_RGBA8, bmpTex.Width, bmpTex.Height,
                    0, Gl.GL_BGRA, Gl.GL_UNSIGNED_BYTE, bd.Scan0);

                bmpTex.UnlockBits(bd);
            }
        }