water anim in shader

This commit is contained in:
Chris Forbes
2009-10-10 20:51:17 +13:00
parent 4fa05a6d40
commit 70bc8366a5
6 changed files with 30 additions and 8 deletions

View File

@@ -10,7 +10,7 @@ namespace OpenRa.Game.Graphics
{
class HardwarePalette : Sheet
{
const int maxEntries = 16;
const int maxEntries = 8;
int allocated = 0;
public HardwarePalette(Renderer renderer, Map map)

View File

@@ -31,10 +31,13 @@ namespace OpenRa.Game.Graphics
public GraphicsDevice Device { get { return device; } }
public static float waterFrame = 0.0f;
public void BeginFrame( float2 r1, float2 r2, float2 scroll )
{
device.Begin();
SpriteShader.SetValue("palDist", waterFrame);
SpriteShader.SetValue("Scroll", scroll);
SpriteShader.SetValue("r1", r1);
SpriteShader.SetValue("r2", r2);

View File

@@ -46,7 +46,7 @@ namespace OpenRa.Game.Graphics
public static void FastCreateQuad(Vertex[] vertices, ushort[] indices, float2 o, Sprite r, int palette, int nv, int ni)
{
float2 attrib = new float2(palette / 16.0f, channelSelect[(int)r.channel]);
float2 attrib = new float2(palette / 8.0f, channelSelect[(int)r.channel]);
vertices[nv] = new Vertex(KLerp(o, r.size, 0), r.FastMapTextureCoords(0), attrib);
vertices[nv + 1] = new Vertex(KLerp(o, r.size, 1), r.FastMapTextureCoords(1), attrib);

View File

@@ -46,7 +46,7 @@ namespace OpenRa.Game
game.world.Add( new Actor( "mcv", new int2( 5, 5 ), game.players[ 3 ]) );
game.world.Add( new Actor( "mcv", new int2( 7, 5 ), game.players[ 2 ] ) );
game.world.Add( new Actor( "mcv", new int2( 9, 5 ), game.players[ 1 ] ) );
game.world.Add( new Actor( "mcv", new int2( 9, 5 ), game.players[ 0 ] ) );
game.world.Add( new Actor( "jeep", new int2( 9, 7 ), game.players[ 1 ] ) );
sidebar = new Sidebar(Race.Soviet, renderer, game);

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Windows.Forms;
using OpenRa.Game.Graphics;
namespace OpenRa.Game
{
@@ -19,8 +20,6 @@ namespace OpenRa.Game
int lastTime = Environment.TickCount + 2000;
public void Update()
{
int t = Environment.TickCount;
@@ -30,7 +29,9 @@ namespace OpenRa.Game
lastTime += 40;
foreach( Actor a in actors )
a.Tick( game, 40 );
a.Tick( game, 40 );
Renderer.waterFrame += 0.05f;
}
foreach (Action<World> a in frameEndActions) a(this);