View of /trunk/Mainform.xaml.cs
Parent Directory
|
Revision Log
Revision 69 -
(download)
(annotate)
Thu Nov 13 10:43:10 2008 UTC (4 years, 6 months ago) by albert
File size: 5829 byte(s)
Thu Nov 13 10:43:10 2008 UTC (4 years, 6 months ago) by albert
File size: 5829 byte(s)
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Threading;
using System.Windows.Media;
namespace Xenki
{
/// <summary>
/// Interaction logic for Page1.xaml
/// </summary>
public partial class Mainform : Page
{
DefaultNetwork.DefaultNetwork network;
public static string TextureTempFolder = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "Xenki_Texture");
public static string TextureCacheFolder = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "Xenki_Texture_Cache");
public Mainform()
{
InitializeComponent();
recentTime = DateTime.Now;
CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
App.Current.Exit += Current_Exit;
Startup();
}
void Current_Exit(object sender, ExitEventArgs e)
{
network.Stop();
}
private void Startup()
{
try
{
debug("Creating renderer");
DefaultRenderer.DefaultRenderer xx = new DefaultRenderer.DefaultRenderer(m_viewport);
// DefaultTexture.DefaultTexture texture = DefaultTexture.DefaultTexture.SingleTextureManager();
debug("Creating mesher");
xx.Mesher = new OpenMetaverse.Rendering.Meshmerizer();
debug("Creating network");
network = new DefaultNetwork.DefaultNetwork(xx);
//network.DefaultTexture = texture;
network.OnLog += network_OnLog;
network.OnMessageChat += network_OnMessageChat;
}
catch (Exception e)
{
debug("Graphics Error: " + e);
}
}
void network_OnMessageChat(string msg)
{
messageDialog.Dispatcher.Invoke(
DispatcherPriority.Normal,
new System.Windows.Forms.MethodInvoker
(delegate
{
if (messageDialog.Items.Count > 10)
messageDialog.Items.RemoveAt(0);
messageDialog.Items.Add(msg);
messageDialog.ScrollIntoView(msg);
}
)
);
}
void network_OnLog(string msg)
{
debug(msg);
}
private void debug(string log)
{
logBox.Dispatcher.Invoke(
DispatcherPriority.Normal,
new System.Windows.Forms.MethodInvoker
(delegate
{
//ListBoxItem lbi = new ListBoxItem();
//lbi.Content = log;
if (logBox.Items.Count > 20)
logBox.Items.RemoveAt(0);
logBox.Items.Add(log);
Console.WriteLine(log);
//logBox.ScrollIntoView(lbi);
}
)
);
/*
frameRate.Dispatcher.Invoke(
DispatcherPriority.Normal,
new System.Windows.Forms.MethodInvoker
(delegate
{
}
)
);
*/
}
private void loginButton_Click(object sender, RoutedEventArgs e)
{
string user = loginUser.Text;
string last = loginLast.Text;
string pass = loginPass.Password;
try
{
debug("Starting network");
network.Start(user, last, pass);
}
catch (Exception ex)
{
debug("Network Error: " + ex);
}
loginGrid.Visibility = System.Windows.Visibility.Collapsed;
}
private static int frameCounter = 0;
private static DateTime recentTime;
void CompositionTarget_Rendering(object sender, EventArgs e)
{
frameCounter++;
if ((DateTime.Now - recentTime) > TimeSpan.FromSeconds(1))
{
frameRate.Dispatcher.Invoke(
DispatcherPriority.Normal,
new System.Windows.Forms.MethodInvoker
(delegate
{
frameRate.Content = "FPS: " + frameCounter;
frameCounter = 0;
recentTime = DateTime.Now;
}
)
);
}
}
private void btnmessage_Click(object sender, RoutedEventArgs e)
{
if (txtMessage.Text.Trim().Length > 0)
{
network.SendChatMessage(txtMessage.Text, 0, OpenMetaverse.ChatType.Normal);
txtMessage.Text = "";
}
}
private void txtMessage_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Enter)
{
if (txtMessage.Text.Trim().Length > 0)
{
network.SendChatMessage(txtMessage.Text, 0, OpenMetaverse.ChatType.Normal);
txtMessage.Text = "";
e.Handled = true;
}
}
}
}
}
| ViewVC Help | |
| Powered by ViewVC 1.0.0 |

