Skip to content
This repository has been archived by the owner on Feb 18, 2022. It is now read-only.

Live profiling 2 #26

Merged
merged 2 commits into from
Dec 13, 2014
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
HudDebug structure
Partial update
fonsp committed Dec 11, 2014
commit 3c8b71976f7dc367d5cab243b252f540f2fdbdb0
2 changes: 1 addition & 1 deletion GraphicsEngine/Core/Camera.cs
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@ public float ZFar
RenderWindow.Instance.UpdateViewport();
}
}
private float fov = 170f;
private float fov = 90f;
public float Fov
{
get
2 changes: 2 additions & 0 deletions GraphicsEngine/GraphicsLibrary.csproj
Original file line number Diff line number Diff line change
@@ -93,6 +93,8 @@
<Compile Include="Core\Material.cs" />
<Compile Include="Core\Shader.cs" />
<Compile Include="Hud\HudConsole.cs" />
<Compile Include="Hud\HudDebug.cs" />
<Compile Include="Hud\HudDebugField.cs" />
<Compile Include="Hud\HudElement.cs" />
<Compile Include="Core\Mesh.cs" />
<Compile Include="Core\Node.cs" />
59 changes: 59 additions & 0 deletions GraphicsEngine/Hud/HudDebug.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using OpenTK;

namespace GraphicsLibrary.Hud
{
public class HudDebug:HudElement
{
public Dictionary<string, HudDebugField> fields = new Dictionary<string, HudDebugField>();

public HudDebug(string name)
: base(name)
{
NewField("test", 0, AlignMode.Left, "Test: ");
NewField("width", 0, AlignMode.Right, "Width: ", 12);
NewField("height", 1, AlignMode.Right, "Height: ", 12);
}

/// <summary>
///
/// </summary>
/// <param name="fieldName">Field identifier</param>
/// <param name="lineOffset">Number of lines below the top edge of the screen</param>
/// <param name="align">Left/Right align</param>
/// <param name="prefix">Displayed text will be: [prefix][value]</param>
/// <param name="width">Field width in characters (16 by default)</param>
private void NewField(string fieldName, int lineOffset, AlignMode align, string prefix, int width = 16)
{
if(fields.ContainsKey(fieldName))
{
throw new ArgumentException("Name already exists");
}
fields.Add(fieldName, new HudDebugField(fieldName, lineOffset, align));
fields[fieldName].prefix = prefix;
fields[fieldName].width = 12 * width;
Add(fields[fieldName]); // Add newly created hudfield node to this huddebug node
}

public void SetValue(string fieldName, string value)
{
fields[fieldName].value = value;
}

public string GetValue(string fieldName)
{
return fields[fieldName].value;
}

public override void Update(float timeSinceLastUpdate)
{
base.Update(timeSinceLastUpdate);

// Update code here
fields["test"].value = "swag";
fields["width"].value = RenderWindow.Instance.Width.ToString();
fields["height"].value = RenderWindow.Instance.Height.ToString();
}
}
}
63 changes: 63 additions & 0 deletions GraphicsEngine/Hud/HudDebugField.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
using OpenTK;
using OpenTK.Graphics;

namespace GraphicsLibrary.Hud
{
public class HudDebugField:TextField
{
public string prefix = "";
public string value = "";
public int width = 122;
public AlignMode align = AlignMode.Left;
public int lineOffset;

private HudImage back = new HudImage("asdf", "white");

public HudDebugField(string name, int lineOffset, AlignMode align)
: base(name)
{
this.align = align;
this.lineOffset = lineOffset;
back.color = new Color4(0f, 0f, 0f, 0.3f);
back.height = 18;
back.width = 128;
}

public override void Update(float timeSinceLastUpdate)
{
base.Update(timeSinceLastUpdate);

text = prefix + value;

// TODO: Update width?

position.Y = 18 * lineOffset;
if(align == AlignMode.Left)
{
position.X = 0;
}
else
{
position.X = RenderWindow.Instance.Width - width;
}
back.position = position;
back.width = width;
}

public override void Render()
{
//render black background
back.Render();

position += new Vector2(1, 1); // padding
base.Render();
position -= new Vector2(1, 1);
}
}

public enum AlignMode
{
Right,
Left
}
}
2 changes: 1 addition & 1 deletion GraphicsEngine/Hud/TextField.cs
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ namespace GraphicsLibrary.Hud
public class TextField:HudElement
{
public string text = "";
public Material textMaterial = new Material("default", Color4.White);//TODO: Default font
public Material textMaterial = new Material("font0", Color4.White);//TODO: Default font
public int sizeX = 12;
public int sizeY = 16;

2 changes: 1 addition & 1 deletion Resim/BasicClock.cs
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ public BasicClock(string name)
public override void Update(float timeSinceLastUpdate)
{
time += timeSinceLastUpdate;
Debug.WriteLine(timeSinceLastUpdate);
//Debug.WriteLine(timeSinceLastUpdate);
base.Update(timeSinceLastUpdate);
}

1 change: 1 addition & 0 deletions Resim/Program/InitGame.cs
Original file line number Diff line number Diff line change
@@ -58,6 +58,7 @@ public override void InitGame()
playerMesh.material.textureName = "playerTexture";

//HudBase.Instance.Add(grainImage);
HudBase.Instance.Add(hudDebug);
HudBase.Instance.Add(hudConsole);
HudBase.Instance.Add(crossHair);
HudBase.Instance.Add(crossHair1);
3 changes: 2 additions & 1 deletion Resim/Program/LoadResources.cs
Original file line number Diff line number Diff line change
@@ -14,7 +14,8 @@ public partial class Game
private Entity map1 = new Entity("map1");
private Entity monster = new Entity("monster");
private Mesh playerMesh;
private HudConsole hudConsole = new HudConsole("HudConsole", 5);
private HudConsole hudConsole = new HudConsole("hudConsole", 5);
private HudDebug hudDebug = new HudDebug("hudDebug");
private HudImage crossHair = new HudImage("crosshair", "crosshair0");
private HudImage crossHair1 = new HudImage("crosshair1", "crosshair0");
private CollisionAABB playerAABB;