From bfb076b9bc054383a0b40853c8cc0fbb5c6f4555 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 10 Nov 2010 22:00:58 +1300 Subject: [PATCH] Refactor IShader to take a name instead of a stream. --- OpenRA.FileFormats/Graphics/IGraphicsDevice.cs | 2 +- OpenRA.Game/Graphics/Renderer.cs | 8 ++++---- OpenRA.Gl/GraphicsDevice.cs | 2 +- OpenRA.Gl/Shader.cs | 5 +++-- OpenRA.Renderer.Null/NullGraphicsDevice.cs | 2 +- {shaders => cg}/chrome-rgba.fx | 0 {shaders => cg}/chrome-shp.fx | 0 shaders/line.fx => cg/world-line.fx | 0 {shaders => cg}/world-shp.fx | 0 9 files changed, 10 insertions(+), 9 deletions(-) rename {shaders => cg}/chrome-rgba.fx (100%) rename {shaders => cg}/chrome-shp.fx (100%) rename shaders/line.fx => cg/world-line.fx (100%) rename {shaders => cg}/world-shp.fx (100%) diff --git a/OpenRA.FileFormats/Graphics/IGraphicsDevice.cs b/OpenRA.FileFormats/Graphics/IGraphicsDevice.cs index 3c807d4810..578d8df696 100755 --- a/OpenRA.FileFormats/Graphics/IGraphicsDevice.cs +++ b/OpenRA.FileFormats/Graphics/IGraphicsDevice.cs @@ -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; } diff --git a/OpenRA.Game/Graphics/Renderer.cs b/OpenRA.Game/Graphics/Renderer.cs index c3122a37b3..2edb10c48e 100644 --- a/OpenRA.Game/Graphics/Renderer.cs +++ b/OpenRA.Game/Graphics/Renderer.cs @@ -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 ); diff --git a/OpenRA.Gl/GraphicsDevice.cs b/OpenRA.Gl/GraphicsDevice.cs index bc0986f0df..f955eca486 100755 --- a/OpenRA.Gl/GraphicsDevice.cs +++ b/OpenRA.Gl/GraphicsDevice.cs @@ -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 ); } } } diff --git a/OpenRA.Gl/Shader.cs b/OpenRA.Gl/Shader.cs index 5e0f8f0734..21896d6d0e 100644 --- a/OpenRA.Gl/Shader.cs +++ b/OpenRA.Gl/Shader.cs @@ -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); diff --git a/OpenRA.Renderer.Null/NullGraphicsDevice.cs b/OpenRA.Renderer.Null/NullGraphicsDevice.cs index f187038c66..31e13de739 100644 --- a/OpenRA.Renderer.Null/NullGraphicsDevice.cs +++ b/OpenRA.Renderer.Null/NullGraphicsDevice.cs @@ -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(); } } } diff --git a/shaders/chrome-rgba.fx b/cg/chrome-rgba.fx similarity index 100% rename from shaders/chrome-rgba.fx rename to cg/chrome-rgba.fx diff --git a/shaders/chrome-shp.fx b/cg/chrome-shp.fx similarity index 100% rename from shaders/chrome-shp.fx rename to cg/chrome-shp.fx diff --git a/shaders/line.fx b/cg/world-line.fx similarity index 100% rename from shaders/line.fx rename to cg/world-line.fx diff --git a/shaders/world-shp.fx b/cg/world-shp.fx similarity index 100% rename from shaders/world-shp.fx rename to cg/world-shp.fx