diff options
| author | Michael <[email protected]> | 2017-07-02 13:31:39 -0400 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-07-02 13:31:39 -0400 |
| commit | dad09c9e7c1ff68a157836b636f13f25d27e050a (patch) | |
| tree | c19c3648072a2ee8b04fa26ef2d875e9ba9857ca /ShiftOS.Frontend/ShiftOS.cs | |
| parent | 345c1446863c3944bb08bfb3dfa25596b94e98db (diff) | |
| download | shiftos_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.cs | 117 |
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); + } + } +} |
