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 );
|
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; }
|
||||||
|
|
||||||
|
|||||||
@@ -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 );
|
||||||
|
|||||||
@@ -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 ); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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(); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user