Ejemplo n.º 1
0
 public void Delete(CSGL gl)
 {
     gl.deleteShader(pixel);
     gl.deleteShader(vertex);
     gl.deleteProgram(handle);
     this	= default(Effect);
 }
Ejemplo n.º 2
0
        public void Draw(CSGL gl)
        {
            if(!loaded)
            {
                loaded	= true;
            }

            var fade	= (Environment.TickCount / 2000f) % 2;
            var col	= new Color4(0.5f,fade < 1 ? (fade % 1) : 1 - (fade % 1),fade >= 1 ? (fade % 1) : 1 - (fade % 1),1);
            gl.Clear(col,1);

            gl.InitMatrix();

            gl.EnableVertex();
            gl.EnableColor();

            fixed(float* pV	= v)
                gl.VertexPointer(3,0,pV);
            fixed(byte* pC	= c)
                gl.ColorPointer(3,0,pC);

            gl.DrawArrays(CSGL.DrawMode.Triangles,0,3);

            gl.Finish();
        }
Ejemplo n.º 3
0
        public Texture2D(CSGL gl,byte[] data,int width,int height)
        {
            fixed(uint* h	= &handle)
                gl.genTextures(1,h);

            gl.bindTexture((uint)Texture.Target.T2D,handle);

            fixed(byte* pData	= data)
                gl.texImage2D((uint)Texture.Target.T2D,0,(uint)Texture.InternalFormat.RGBA
                    ,width,height,0,(uint)Texture.Format.RGBA,(uint)Texture.Type.RGBA8,pData);
        }
Ejemplo n.º 4
0
        public Effect(CSGL gl,string vertexShader,string pixelShader)
        {
            handle	= gl.createProgram();
            vertex	= gl.createShader((uint)ShaderType.Vertex);
            pixel	= gl.createShader((uint)ShaderType.Fragment);

            fixed(byte* source	= Encoding.ASCII.GetBytes(vertexShader))
            fixed(byte** sources	= new byte*[] { source })
                gl.shaderSource(vertex,1,sources,null);

            fixed(byte* source	= Encoding.ASCII.GetBytes(pixelShader))
            fixed(byte** sources	= new byte*[] { source })
                gl.shaderSource(pixel,1,sources,null);

            gl.compileShader(vertex);
            gl.compileShader(pixel);

            gl.attachShader(handle,vertex);
            gl.attachShader(handle,pixel);

            gl.linkProgram(handle);
        }
Ejemplo n.º 5
0
 public void UseProgram(CSGL gl)
 {
     gl.useProgram(handle);
 }