Refactor IShader to take a name instead of a stream.

This commit is contained in:
Paul Chote
2010-11-10 22:00:58 +13:00
parent 5292272902
commit bfb076b9bc
9 changed files with 10 additions and 9 deletions

View File

@@ -33,7 +33,7 @@ namespace OpenRA.FileFormats.Graphics
IIndexBuffer CreateIndexBuffer( int length );
ITexture CreateTexture( Bitmap bitmap );
ITexture CreateTexture();
IShader CreateShader( Stream stream );
IShader CreateShader( string name );
Size WindowSize { get; }

View File

@@ -46,10 +46,10 @@ namespace OpenRA.Graphics
public Renderer()
{
SpriteShader = device.CreateShader(FileSystem.Open("shaders/world-shp.fx"));
LineShader = device.CreateShader(FileSystem.Open("shaders/line.fx"));
RgbaSpriteShader = device.CreateShader(FileSystem.Open("shaders/chrome-rgba.fx"));
WorldSpriteShader = device.CreateShader(FileSystem.Open("shaders/chrome-shp.fx"));
SpriteShader = device.CreateShader("world-shp");
LineShader = device.CreateShader("world-line");
RgbaSpriteShader = device.CreateShader("chrome-rgba");
WorldSpriteShader = device.CreateShader("chrome-shp");
SpriteRenderer = new SpriteRenderer( this, SpriteShader );
RgbaSpriteRenderer = new SpriteRenderer( this, RgbaSpriteShader );

View File

@@ -312,6 +312,6 @@ namespace OpenRA.GlRenderer
public IIndexBuffer CreateIndexBuffer( int size ) { return new IndexBuffer( this, size ); }
public ITexture CreateTexture() { return new Texture( this ); }
public ITexture CreateTexture( Bitmap bitmap ) { return new Texture( this, bitmap ); }
public IShader CreateShader( Stream stream ) { return new Shader( this, stream ); }
public IShader CreateShader( string name ) { return new Shader( this, name ); }
}
}

View File

@@ -10,6 +10,7 @@
using System;
using System.IO;
using OpenRA.FileFormats;
using OpenRA.FileFormats.Graphics;
using Tao.Cg;
@@ -21,11 +22,11 @@ namespace OpenRA.GlRenderer
IntPtr technique;
GraphicsDevice dev;
public Shader(GraphicsDevice dev, Stream s)
public Shader(GraphicsDevice dev, string name)
{
this.dev = dev;
string code;
using (var file = new StreamReader(s))
using (var file = new StreamReader(FileSystem.Open("cg{0}{1}.fx".F(Path.DirectorySeparatorChar, name))))
code = file.ReadToEnd();
effect = Cg.cgCreateEffect(dev.cgContext, code, null);

View File

@@ -44,6 +44,6 @@ namespace OpenRA.Renderer.Null
public IIndexBuffer CreateIndexBuffer(int size) { return new NullIndexBuffer(); }
public ITexture CreateTexture() { return new NullTexture(); }
public ITexture CreateTexture(Bitmap bitmap) { return new NullTexture(); }
public IShader CreateShader(Stream stream) { return new NullShader(); }
public IShader CreateShader(string name) { return new NullShader(); }
}
}