Refactor IShader to take a name instead of a stream.
This commit is contained in:
@@ -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; }
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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 ); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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(); }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user