コード例 #1
0
ファイル: Shader.cs プロジェクト: pdovy/OpenRA
        public Shader(GraphicsDevice dev, Stream s)
        {
            this.dev = dev;
            string code;
            using (var file = new StreamReader(s))
                code = file.ReadToEnd();
            effect = Cg.cgCreateEffect(dev.cgContext, code, null);

            if (effect == IntPtr.Zero)
            {
                var err = Cg.cgGetErrorString(Cg.cgGetError());
                var results = Cg.cgGetLastListing(dev.cgContext);
                throw new InvalidOperationException(
                    string.Format("Cg compile failed ({0}):\n{1}", err, results));
            }

            technique = Cg.cgGetFirstTechnique(effect);
            if (technique == IntPtr.Zero)
                throw new InvalidOperationException("No techniques");
            while (Cg.cgValidateTechnique(technique) == 0)
            {
                technique = Cg.cgGetNextTechnique(technique);
                if (technique == IntPtr.Zero)
                    throw new InvalidOperationException("No valid techniques");
            }
        }
コード例 #2
0
ファイル: IndexBuffer.cs プロジェクト: pdovy/OpenRA
 public IndexBuffer(GraphicsDevice dev, int size)
 {
     Gl.glGenBuffers(1, out buffer);
     GraphicsDevice.CheckGlError();
     Bind();
     Gl.glBufferData(Gl.GL_ELEMENT_ARRAY_BUFFER,
         new IntPtr(2 * size),
         new ushort[ size ],
         Gl.GL_DYNAMIC_DRAW);
     GraphicsDevice.CheckGlError();
 }
コード例 #3
0
ファイル: IndexBuffer.cs プロジェクト: mgatland/OpenRA
 public IndexBuffer(GraphicsDevice dev, int size)
 {
     Gl.glGenBuffers(1, out buffer);
     GraphicsDevice.CheckGlError();
 }
コード例 #4
0
ファイル: Texture.cs プロジェクト: pdovy/OpenRA
 public Texture(GraphicsDevice dev, Bitmap bitmap)
 {
     Gl.glGenTextures(1, out texture);
     GraphicsDevice.CheckGlError();
     SetData(bitmap);
 }
コード例 #5
0
ファイル: Texture.cs プロジェクト: pdovy/OpenRA
 public Texture(GraphicsDevice dev)
 {
     Gl.glGenTextures(1, out texture);
     GraphicsDevice.CheckGlError();
 }