예제 #1
0
        public Game()
        {
            state = new BootState(this);

            window = new GameWindow(960, 540);
            window.Load += Window_Load;
            window.RenderFrame += Window_RenderFrame;
            window.UpdateFrame += Window_UpdateFrame;
            window.Closing += Window_Closing;
            window.Closed += Window_Closed;
            window.Resize += Window_Resize;
            window.FocusedChanged += Window_FocusedChanged;

            Console.WriteLine("OpenGL: {0}", GL.GetString(StringName.Version));

            keyHandler = new KeyHandler(window);

            Canvas = new SceneCanvas(keyHandler);
            shaderManager = new ShaderManager();

            shader = new StaticShader();
            shaderManager.Add(shader);

            fontShader = new FontShader();

            fontManager = new FontManager(fontShader);
            fontShader.Compile();
            font = FontParser.ParseFNT(@"Fonts/Verdana.fnt");
            fontManager.Add(font);

            lastMousePosition = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
        }
        /// <summary>
        /// Sets up the fonts.
        /// </summary>
        /// <returns>The <see cref="NexusFontSetResolver"/> to be used.</returns>
        private NexusFontSetResolver SetUpFonts()
        {
            FontManager.Add("LinBiolinum", Resources.LinBiolinum_RB);
            FontManager.Add("LinBiolinum", Resources.LinBiolinum_RI);

            FontSet fstDefault = new FontSet(new string[] { "Microsoft Sans Serif", "Arial" });
            FontSetGroup fsgDefault = new FontSetGroup(fstDefault);
            fsgDefault.AddFontSet("StandardText", fstDefault);
            fsgDefault.AddFontSet("HeadingText", fstDefault);
            fsgDefault.AddFontSet("SmallText", new FontSet(new string[] { "Segoe UI", "Arial" }));
            fsgDefault.AddFontSet("MenuText", new FontSet(new string[] { "Segoe UI", "Arial" }));
            fsgDefault.AddFontSet("GameSearchText", new FontSet(new string[] { "LinBiolinum" }));
            fsgDefault.AddFontSet("TestText", new FontSet(new string[] { "Wingdings" }));

            NexusFontSetResolver fsrResolver = new NexusFontSetResolver();
            fsrResolver.AddFontSets(fsgDefault);

            FontProvider.SetFontSetResolver(fsrResolver);
            return fsrResolver;
        }
예제 #3
0
파일: Game.cs 프로젝트: marwahaha/FacCom
        protected override void Initialize()
        {
            ShaderManager.Add("VS_2D", Resources.GetShader("VS", "VS", "UI2D.fx")).SetInputLayout(Vertex2D.Elements);
            ShaderManager.Add("PS_2D", Resources.GetShader("PS", "PS", "UI2D.fx"));

            FontManager.Add("small", Resources.GetFont("Fonts/small"));
            FontManager.Add("default", Resources.GetFont("Fonts/default"));

            ScreenshotManager.Initialize();
            QuadRenderer.Initialize();
            InputManager.Initialize();

            WebWindow.Initialize();

            DebugPerfMonitor.Initialize();

            ScreenManager.AddScreen(new StartupScreen());
            ScreenManager.GotoScreen("Startup");

            Form.KeyDown += Form_KeyDown;
        }
예제 #4
0
        protected override void WinInitialize()
        {
            instance = this;

            form = (MainWindow)Main.Form;

            loading = true;
            if (Display.device.IsDisposed)
            {
                return;
            }

            //Display.device.SetRenderState(RenderState.FillMode,FillMode.Wireframe);

            ShaderManager.Add("VS_2D", Resources.GetShader("VS", "VS", "UI2D.fx")).SetInputLayout(Vertex2D.Elements);
            ShaderManager.Add("PS_2D", Resources.GetShader("PS", "PS", "UI2D.fx"));

            ShaderManager.Add("VS_Debug", Resources.GetShader("VS", "VS", "Debug.fx")).SetInputLayout(VertexColor.Elements);
            ShaderManager.Add("PS_Debug", Resources.GetShader("PS", "PS", "Debug.fx"));

            ShaderManager.Add("VS_Terrain", Resources.GetShader("VS", "VS", "TerrainDebug.fx")).SetInputLayout(TerrainTriangle.Elements);
            ShaderManager.Add("PS_Terrain", Resources.GetShader("PS", "PS", "TerrainDebug.fx"));

            ShaderManager.Add("VS_Water", Resources.GetShader("VS", "VS", "Water.fx")).SetInputLayout(VertexTexture.Elements);
            ShaderManager.Add("PS_Water", Resources.GetShader("PS", "PS", "Water.fx"));


            FontManager.Add("default", Resources.GetFont("Fonts/default"));

            SceneManager.Initialize();
            QuadRenderer.Initialize();


            /*------------------------------------------------------------------------------------------*/

            Texture2DDescription desc = new Texture2DDescription()
            {
                ArraySize         = 1,
                BindFlags         = BindFlags.RenderTarget | BindFlags.ShaderResource,
                CpuAccessFlags    = CpuAccessFlags.None,
                Format            = Format.R8G8B8A8_UNorm,
                Width             = 512,
                Height            = 512,
                MipLevels         = 1,
                OptionFlags       = ResourceOptionFlags.None,
                SampleDescription = new SampleDescription(1, 0),
                Usage             = ResourceUsage.Default,
            };

            brushTexture      = new Texture2D(Display.device, desc);
            brushRenderTarget = new RenderTargetView(Display.device, brushTexture);

            Texture2DDescription descReadable = desc;

            descReadable.BindFlags      = BindFlags.None;
            descReadable.CpuAccessFlags = CpuAccessFlags.Read;
            descReadable.Usage          = ResourceUsage.Staging;
            brushTextureReadable        = new Texture2D(Display.device, descReadable);

            defaultBrushShape = Resources.GetTexture("blob.png", false);
            DefaultBrush      = defaultBrushShape;

            CurrentBrush = new Texture(DefaultBrush.Tex);

            CurrentBrushColor = new Color4(1, 0, 0, 0);

            camera = new EditorCamera();
            SceneManager.Camera = camera;

            LoadMap(MainWindow.mapFile);

            firstRun = false;
            loading  = false;
            return;
        }