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 ); IIndexBuffer CreateIndexBuffer( int length );
ITexture CreateTexture( Bitmap bitmap ); ITexture CreateTexture( Bitmap bitmap );
ITexture CreateTexture(); ITexture CreateTexture();
IShader CreateShader( Stream stream ); IShader CreateShader( string name );
Size WindowSize { get; } Size WindowSize { get; }

View File

@@ -46,10 +46,10 @@ namespace OpenRA.Graphics
public Renderer() public Renderer()
{ {
SpriteShader = device.CreateShader(FileSystem.Open("shaders/world-shp.fx")); SpriteShader = device.CreateShader("world-shp");
LineShader = device.CreateShader(FileSystem.Open("shaders/line.fx")); LineShader = device.CreateShader("world-line");
RgbaSpriteShader = device.CreateShader(FileSystem.Open("shaders/chrome-rgba.fx")); RgbaSpriteShader = device.CreateShader("chrome-rgba");
WorldSpriteShader = device.CreateShader(FileSystem.Open("shaders/chrome-shp.fx")); WorldSpriteShader = device.CreateShader("chrome-shp");
SpriteRenderer = new SpriteRenderer( this, SpriteShader ); SpriteRenderer = new SpriteRenderer( this, SpriteShader );
RgbaSpriteRenderer = new SpriteRenderer( this, RgbaSpriteShader ); 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 IIndexBuffer CreateIndexBuffer( int size ) { return new IndexBuffer( this, size ); }
public ITexture CreateTexture() { return new Texture( this ); } public ITexture CreateTexture() { return new Texture( this ); }
public ITexture CreateTexture( Bitmap bitmap ) { return new Texture( this, bitmap ); } 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;
using System.IO; using System.IO;
using OpenRA.FileFormats;
using OpenRA.FileFormats.Graphics; using OpenRA.FileFormats.Graphics;
using Tao.Cg; using Tao.Cg;
@@ -21,11 +22,11 @@ namespace OpenRA.GlRenderer
IntPtr technique; IntPtr technique;
GraphicsDevice dev; GraphicsDevice dev;
public Shader(GraphicsDevice dev, Stream s) public Shader(GraphicsDevice dev, string name)
{ {
this.dev = dev; this.dev = dev;
string code; 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(); code = file.ReadToEnd();
effect = Cg.cgCreateEffect(dev.cgContext, code, null); 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 IIndexBuffer CreateIndexBuffer(int size) { return new NullIndexBuffer(); }
public ITexture CreateTexture() { return new NullTexture(); } public ITexture CreateTexture() { return new NullTexture(); }
public ITexture CreateTexture(Bitmap bitmap) { 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(); }
} }
} }