moved Game.palette into WorldRenderer
This commit is contained in:
@@ -28,7 +28,6 @@ namespace OpenRa
|
|||||||
|
|
||||||
internal static Renderer renderer;
|
internal static Renderer renderer;
|
||||||
static int2 clientSize;
|
static int2 clientSize;
|
||||||
static HardwarePalette palette;
|
|
||||||
static string mapName;
|
static string mapName;
|
||||||
internal static Session LobbyInfo = new Session();
|
internal static Session LobbyInfo = new Session();
|
||||||
static bool changePending;
|
static bool changePending;
|
||||||
@@ -57,8 +56,6 @@ namespace OpenRa
|
|||||||
a.Owner.Shroud.Explore(a);
|
a.Owner.Shroud.Explore(a);
|
||||||
};
|
};
|
||||||
|
|
||||||
palette = new HardwarePalette(renderer, world.Map);
|
|
||||||
|
|
||||||
SequenceProvider.Initialize(manifest.Sequences);
|
SequenceProvider.Initialize(manifest.Sequences);
|
||||||
viewport = new Viewport(clientSize, Game.world.Map.Offset, Game.world.Map.Offset + Game.world.Map.Size, renderer);
|
viewport = new Viewport(clientSize, Game.world.Map.Offset, Game.world.Map.Offset + Game.world.Map.Size, renderer);
|
||||||
|
|
||||||
@@ -147,8 +144,6 @@ namespace OpenRa
|
|||||||
|
|
||||||
using (new PerfSample("render"))
|
using (new PerfSample("render"))
|
||||||
{
|
{
|
||||||
UpdatePalette(world.Actors.SelectMany(
|
|
||||||
a => a.traits.WithInterface<IPaletteModifier>()));
|
|
||||||
++RenderFrame;
|
++RenderFrame;
|
||||||
viewport.DrawRegions();
|
viewport.DrawRegions();
|
||||||
}
|
}
|
||||||
@@ -157,16 +152,6 @@ namespace OpenRa
|
|||||||
PerfHistory.items["batches"].Tick();
|
PerfHistory.items["batches"].Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UpdatePalette(IEnumerable<IPaletteModifier> paletteMods)
|
|
||||||
{
|
|
||||||
var b = new Bitmap(palette.Bitmap);
|
|
||||||
foreach (var mod in paletteMods)
|
|
||||||
mod.AdjustPalette(b);
|
|
||||||
|
|
||||||
palette.Texture.SetData(b);
|
|
||||||
renderer.PaletteTexture = palette.Texture;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Random SharedRandom = new Random(0); /* for things that require sync */
|
public static Random SharedRandom = new Random(0); /* for things that require sync */
|
||||||
public static Random CosmeticRandom = new Random(); /* for things that are just fluff */
|
public static Random CosmeticRandom = new Random(); /* for things that are just fluff */
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using OpenRa.FileFormats;
|
using OpenRa.FileFormats;
|
||||||
|
using OpenRa.Traits;
|
||||||
|
|
||||||
namespace OpenRa.Graphics
|
namespace OpenRa.Graphics
|
||||||
{
|
{
|
||||||
@@ -38,5 +40,15 @@ namespace OpenRa.Graphics
|
|||||||
|
|
||||||
return allocated++;
|
return allocated++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Update(IEnumerable<IPaletteModifier> paletteMods)
|
||||||
|
{
|
||||||
|
var b = new Bitmap(Bitmap);
|
||||||
|
foreach (var mod in paletteMods)
|
||||||
|
mod.AdjustPalette(b);
|
||||||
|
|
||||||
|
Texture.SetData(b);
|
||||||
|
Game.renderer.PaletteTexture = Texture;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,9 @@ namespace OpenRa.Graphics
|
|||||||
|
|
||||||
public void DrawRegions()
|
public void DrawRegions()
|
||||||
{
|
{
|
||||||
|
Game.world.WorldRenderer.palette.Update(Game.world.Actors.SelectMany(
|
||||||
|
a => a.traits.WithInterface<IPaletteModifier>()));
|
||||||
|
|
||||||
float2 r1 = new float2(2, -2) / screenSize;
|
float2 r1 = new float2(2, -2) / screenSize;
|
||||||
float2 r2 = new float2(-1, 1);
|
float2 r2 = new float2(-1, 1);
|
||||||
|
|
||||||
|
|||||||
@@ -12,17 +12,19 @@ namespace OpenRa.Graphics
|
|||||||
internal readonly LineRenderer lineRenderer;
|
internal readonly LineRenderer lineRenderer;
|
||||||
internal readonly UiOverlay uiOverlay;
|
internal readonly UiOverlay uiOverlay;
|
||||||
internal readonly Renderer renderer;
|
internal readonly Renderer renderer;
|
||||||
|
internal readonly HardwarePalette palette;
|
||||||
|
|
||||||
public static bool ShowUnitPaths = false;
|
public static bool ShowUnitPaths = false;
|
||||||
|
|
||||||
internal WorldRenderer(World world, Renderer renderer)
|
internal WorldRenderer(World world, Renderer renderer)
|
||||||
{
|
{
|
||||||
terrainRenderer = new TerrainRenderer(world, renderer);
|
|
||||||
|
|
||||||
this.renderer = renderer;
|
this.renderer = renderer;
|
||||||
|
|
||||||
|
terrainRenderer = new TerrainRenderer(world, renderer);
|
||||||
spriteRenderer = new SpriteRenderer(renderer, true);
|
spriteRenderer = new SpriteRenderer(renderer, true);
|
||||||
lineRenderer = new LineRenderer(renderer);
|
lineRenderer = new LineRenderer(renderer);
|
||||||
uiOverlay = new UiOverlay(spriteRenderer);
|
uiOverlay = new UiOverlay(spriteRenderer);
|
||||||
|
palette = new HardwarePalette(renderer, world.Map);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawSpriteList(RectangleF rect,
|
void DrawSpriteList(RectangleF rect,
|
||||||
|
|||||||
Reference in New Issue
Block a user