aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.Frontend/ShiftOS.cs
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-07-02 13:31:39 -0400
committerMichael <[email protected]>2017-07-02 13:31:39 -0400
commitdad09c9e7c1ff68a157836b636f13f25d27e050a (patch)
treec19c3648072a2ee8b04fa26ef2d875e9ba9857ca /ShiftOS.Frontend/ShiftOS.cs
parent345c1446863c3944bb08bfb3dfa25596b94e98db (diff)
downloadshiftos_thereturn-dad09c9e7c1ff68a157836b636f13f25d27e050a.tar.gz
shiftos_thereturn-dad09c9e7c1ff68a157836b636f13f25d27e050a.tar.bz2
shiftos_thereturn-dad09c9e7c1ff68a157836b636f13f25d27e050a.zip
Render text onscreen
Diffstat (limited to 'ShiftOS.Frontend/ShiftOS.cs')
-rw-r--r--ShiftOS.Frontend/ShiftOS.cs117
1 files changed, 117 insertions, 0 deletions
diff --git a/ShiftOS.Frontend/ShiftOS.cs b/ShiftOS.Frontend/ShiftOS.cs
new file mode 100644
index 0000000..90ebb4b
--- /dev/null
+++ b/ShiftOS.Frontend/ShiftOS.cs
@@ -0,0 +1,117 @@
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using ShiftOS.Frontend.GraphicsSubsystem;
+
+namespace ShiftOS.Frontend
+{
+ /// <summary>
+ /// This is the main type for your game.
+ /// </summary>
+ public class ShiftOS : Game
+ {
+ GraphicsDeviceManager GraphicsDevice;
+ SpriteBatch spriteBatch;
+
+ public ShiftOS()
+ {
+ GraphicsDevice = new GraphicsDeviceManager(this);
+ Content.RootDirectory = "Content";
+ //Make the mouse cursor visible.
+ this.IsMouseVisible = true;
+
+ //Don't allow ALT+F4
+ this.Window.AllowAltF4 = false;
+
+ //Make window borderless
+ Window.IsBorderless = true;
+
+ //Set the title
+ Window.Title = "ShiftOS";
+
+
+
+ //Fullscreen
+ GraphicsDevice.IsFullScreen = true;
+
+ }
+
+ /// <summary>
+ /// Allows the game to perform any initialization it needs to before starting to run.
+ /// This is where it can query for any required services and load any non-graphic
+ /// related content. Calling base.Initialize will enumerate through any components
+ /// and initialize them as well.
+ /// </summary>
+ protected override void Initialize()
+ {
+ //We'll start by initializing the BARE FUNDAMENTALS of the ShiftOS engine.
+ //This'll be enough to do skinning, fs, windowmanagement etc
+ //so that we can make the main menu and yeah
+
+ //Let's add a control to test something
+ var textControl = new GUI.TextControl();
+ textControl.Width = 640;
+ textControl.Height = 480;
+ UIManager.AddTopLevel(textControl);
+
+
+ base.Initialize();
+
+ }
+
+ /// <summary>
+ /// LoadContent will be called once per game and is the place to load
+ /// all of your content.
+ /// </summary>
+ protected override void LoadContent()
+ {
+ // Create a new SpriteBatch, which can be used to draw textures.
+ this.spriteBatch = new SpriteBatch(base.GraphicsDevice);
+
+ // TODO: use this.Content to load your game content here
+ }
+
+ /// <summary>
+ /// UnloadContent will be called once per game and is the place to unload
+ /// game-specific content.
+ /// </summary>
+ protected override void UnloadContent()
+ {
+ // TODO: Unload any non ContentManager content here
+ }
+
+ /// <summary>
+ /// Allows the game to run logic such as updating the world,
+ /// checking for collisions, gathering input, and playing audio.
+ /// </summary>
+ /// <param name="gameTime">Provides a snapshot of timing values.</param>
+ protected override void Update(GameTime gameTime)
+ {
+ //Let's get the mouse state
+ var mouseState = Mouse.GetState(this.Window);
+
+ //Now let's process it.
+ UIManager.ProcessMouseState(mouseState);
+
+ base.Update(gameTime);
+ }
+
+ /// <summary>
+ /// This is called when the game should draw itself.
+ /// </summary>
+ /// <param name="gameTime">Provides a snapshot of timing values.</param>
+ protected override void Draw(GameTime gameTime)
+ {
+ this.spriteBatch.Begin();
+ //Draw the desktop BG.
+ var graphics = GraphicsDevice.GraphicsDevice;
+ UIManager.DrawBackgroundLayer(graphics, spriteBatch, 640, 480);
+
+ //The desktop is drawn, now we can draw the UI.
+ UIManager.DrawControls(graphics, spriteBatch);
+
+ spriteBatch.End();
+ base.Draw(gameTime);
+ }
+ }
+}