Ejemplo n.º 1
0
 public Window(int Width, int Height, string Title, OnLoadHandler LoadHandler, bool UseOGL3 = false)
 {
     GameWindow = new GameWindow(Width, Height,
                                 new GraphicsMode(new ColorFormat(8, 8, 8, 8),                //RGBA
                                                  8, 8, 8),                                   //Depth, stencil, samples
                                 Title,
                                 GameWindowFlags.Default,                                     //Fullscreen/windowed
                                 DisplayDevice.Default,                                       //Monitor
                                 UseOGL3 ? 3 : 2, 0, GraphicsContextFlags.ForwardCompatible); //OGL version
     GameWindow.Load += new EventHandler <EventArgs>(LoadHandler);
 }
Ejemplo n.º 2
0
 public Window( int Width, int Height, string Title, OnLoadHandler LoadHandler, bool UseOGL3 = false )
 {
     GameWindow = new GameWindow( Width, Height,
         new GraphicsMode( new ColorFormat( 8, 8, 8, 8 ),//RGBA
             8, 8, 8 ),//Depth, stencil, samples
         Title,
         GameWindowFlags.Default,//Fullscreen/windowed
         DisplayDevice.Default, //Monitor
         UseOGL3 ? 3 : 2, 0, GraphicsContextFlags.ForwardCompatible );//OGL version
     GameWindow.Load += new EventHandler<EventArgs>( LoadHandler );
 }
Ejemplo n.º 3
0
        public static void Initialize(int Width, int Height, string Title, OnLoadHandler LoadHandler, bool UseOGL3 = false)
        {
            window = new Window(Width, Height, Title, LoadHandler, UseOGL3);

            string exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            defaultTextureVertexShader = new VertexShader();
            defaultTextureVertexShader.LoadFromFile(exePath + @"\shaders\defTextureVert.vert.c");
            defaultTexturedFragmentShader = new FragmentShader();
            defaultTexturedFragmentShader.LoadFromFile(exePath + @"\shaders\defTextureFrag.frag.c");
            defaultShapeVertexShader = new VertexShader();
            defaultShapeVertexShader.LoadFromFile(exePath + @"\shaders\defShapeVert.vert.c");
            defaultShapeFragmentShader = new FragmentShader();
            defaultShapeFragmentShader.LoadFromFile(exePath + @"\shaders\defShapeFrag.frag.c");

            defaultShapeProgram = new ShaderProgram(defaultShapeVertexShader, defaultShapeFragmentShader);
            defaultShapeProgram.Link();
            defaultShapeProgram.AddUniformLocation("window_matrix");
            defaultShapeProgram.AddUniformLocation("model_matrix");
            defaultShapeProgram.AddUniformLocation("projection_matrix");
            defaultShapeProgram.AddUniformLocation("camera_matrix");
            defaultShapeProgram.AddAttribLocation("vertex_coord");
            defaultShapeProgram.AddAttribLocation("vertex_color");

            defaultTextureProgram = new ShaderProgram(defaultTextureVertexShader, defaultTexturedFragmentShader);
            defaultTextureProgram.Link();
            defaultTextureProgram.AddUniformLocation("window_matrix");
            defaultTextureProgram.AddUniformLocation("model_matrix");
            defaultTextureProgram.AddUniformLocation("projection_matrix");
            defaultTextureProgram.AddUniformLocation("camera_matrix");
            defaultTextureProgram.AddUniformLocation("texture");
            defaultTextureProgram.AddAttribLocation("vertex_coord");
            defaultTextureProgram.AddAttribLocation("vertex_texcoord");

            windowMatrix     = Matrix4.Identity;
            projectionMatrix = new Matrix4(new Vector4(2F / window.Width, 0, 0, 0),
                                           new Vector4(0, -2F / window.Height, 0, 0),
                                           new Vector4(0, 0, 1, 0),
                                           new Vector4(0, 0, 0, 1)) * Matrix4.CreateTranslation(-1, 1, 0);

            var newCam = new Camera();

            newCam.Activate();

            renderList       = new LinkedList <IRenderable>();
            updateList       = new LinkedList <IUpdatable>();
            renderRemoveList = new LinkedList <IRenderable>();
            updateRemoveList = new LinkedList <IUpdatable>();

            Utility.ProcessOGLErrors();

            window.GameWindow.Load += mainLoop;
            window.GameWindow.Run();
        }
Ejemplo n.º 4
0
        public static string GetData()
        {
            var data = string.Empty;

            CreateFile(fullFileName);

            var reader = new StreamReader(fullFileName);

            data = reader.ReadToEnd();
            reader.Close();

            if (OnLoadHandler != null)
            {
                OnLoadHandler.Invoke(new FileLoadingEventArgs(fullFileName, data));
            }

            return(data);
        }
Ejemplo n.º 5
0
        public static void LoadBackup()
        {
            if (File.Exists(fullFileName) && File.Exists(fullBackupFileName))
            {
                var    reader = new StreamReader(fullBackupFileName);
                string data   = reader.ReadToEnd();
                reader.Close();

                if (!string.IsNullOrEmpty(data))
                {
                    File.WriteAllText(fullFileName, data);
                }

                if (OnLoadHandler != null)
                {
                    OnLoadHandler.Invoke(new FileLoadingEventArgs(fullBackupFileName, data));
                }
            }
        }
Ejemplo n.º 6
0
        public static void Initialize( int Width, int Height, string Title, OnLoadHandler LoadHandler, bool UseOGL3 = false )
        {
            window = new Window( Width, Height, Title, LoadHandler, UseOGL3 );

            defaultTextureVertexShader = new VertexShader();
            defaultTextureVertexShader.LoadFromFile( @"shaders\defTextureVert.vert.c" );
            defaultTexturedFragmentShader = new FragmentShader();
            defaultTexturedFragmentShader.LoadFromFile( @"shaders\defTextureFrag.frag.c" );
            defaultShapeVertexShader = new VertexShader();
            defaultShapeVertexShader.LoadFromFile( @"shaders\defShapeVert.vert.c" );
            defaultShapeFragmentShader = new FragmentShader();
            defaultShapeFragmentShader.LoadFromFile( @"shaders\defShapeFrag.frag.c" );

            defaultShapeProgram = new ShaderProgram( defaultShapeVertexShader, defaultShapeFragmentShader );
            defaultShapeProgram.Link();
            defaultShapeProgram.AddUniformLocation( "window_matrix" );
            defaultShapeProgram.AddUniformLocation( "model_matrix" );
            defaultShapeProgram.AddUniformLocation( "projection_matrix" );
            defaultShapeProgram.AddUniformLocation( "camera_matrix" );
            defaultShapeProgram.AddAttribLocation( "vertex_coord" );
            defaultShapeProgram.AddAttribLocation( "vertex_color" );

            defaultTextureProgram = new ShaderProgram( defaultTextureVertexShader, defaultTexturedFragmentShader );
            defaultTextureProgram.Link();
            defaultTextureProgram.AddUniformLocation( "window_matrix" );
            defaultTextureProgram.AddUniformLocation( "model_matrix" );
            defaultTextureProgram.AddUniformLocation( "projection_matrix" );
            defaultTextureProgram.AddUniformLocation( "camera_matrix" );
            defaultTextureProgram.AddUniformLocation( "texture" );
            defaultTextureProgram.AddAttribLocation( "vertex_coord" );
            defaultTextureProgram.AddAttribLocation( "vertex_texcoord" );

            windowMatrix = Matrix4.Identity;
            projectionMatrix = new Matrix4( new Vector4( 2F / window.Width, 0, 0, 0 ),
                new Vector4( 0, -2F / window.Height, 0, 0 ),
                new Vector4( 0, 0, 1, 0 ),
                new Vector4( 0, 0, 0, 1 ) ) * Matrix4.CreateTranslation( -1, 1, 0 );

            Camera newCam = new Camera();
            newCam.Activate();

            renderList = new LinkedList<IRenderable>();
            updateList = new LinkedList<IUpdatable>();
            renderRemoveList = new LinkedList<IRenderable>();
            updateRemoveList = new LinkedList<IUpdatable>();

            Utility.ProcessOGLErrors();

            window.GameWindow.Load += new EventHandler<EventArgs>( mainLoop );
            window.GameWindow.Run();
        }
Ejemplo n.º 7
0
        public static Stage Initialize(int width, int height, string title, OnLoadHandler loadHandler,
									  bool useLatestAvailable = false)
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            window = new Window(width, height, title, useLatestAvailable);

            Title = title;

            if (useLatestAvailable)
            {
                Console.WriteLine(@"Using latest available version: " + LatestAvailableVersion / 10F);
            }
            else
            {
                Console.WriteLine(@"Using OpenGL 2.0, latest version available on the system is: " + LatestAvailableVersion / 10F);
            }

            if (useLatestAvailable && LatestAvailableVersion >= 40)
            {
                defaultTextureVertexShader = new VertexShader();
                defaultTextureVertexShader.LoadFromSource(DefaultShaders.OGL4TexturedVert);
                defaultTexturedFragmentShader = new FragmentShader();
                defaultTexturedFragmentShader.LoadFromSource(DefaultShaders.OGL4TexturedFrag);
                defaultShapeVertexShader = new VertexShader();
                defaultShapeVertexShader.LoadFromSource(DefaultShaders.OGL4ShapeVert);
                defaultShapeFragmentShader = new FragmentShader();
                defaultShapeFragmentShader.LoadFromSource(DefaultShaders.OGL4ShapeFrag);
            }
            else
            {
                defaultTextureVertexShader = new VertexShader();
                defaultTextureVertexShader.LoadFromSource(DefaultShaders.TexturedVert);
                defaultTexturedFragmentShader = new FragmentShader();
                defaultTexturedFragmentShader.LoadFromSource(DefaultShaders.TexturedFrag);
                defaultShapeVertexShader = new VertexShader();
                defaultShapeVertexShader.LoadFromSource(DefaultShaders.ShapeVert);
                defaultShapeFragmentShader = new FragmentShader();
                defaultShapeFragmentShader.LoadFromSource(DefaultShaders.ShapeFrag);
            }

            DefaultShapeProgram = new ShaderProgram(defaultShapeVertexShader, defaultShapeFragmentShader);
            DefaultShapeProgram.Link();
            DefaultShapeProgram.AddUniformLocation("window_matrix");
            DefaultShapeProgram.AddUniformLocation("model_matrix");
            DefaultShapeProgram.AddUniformLocation("projection_matrix");
            DefaultShapeProgram.AddUniformLocation("camera_matrix");
            DefaultShapeProgram.AddUniformLocation("alpha");
            DefaultShapeProgram.AddUniformLocation("tintR");
            DefaultShapeProgram.AddUniformLocation("tintG");
            DefaultShapeProgram.AddUniformLocation("tintB");
            DefaultShapeProgram.AddUniformLocation("tintA");
            DefaultShapeProgram.AddAttribLocation("vertex_coord");
            DefaultShapeProgram.AddAttribLocation("vertex_color");

            DefaultTextureProgram = new ShaderProgram(defaultTextureVertexShader, defaultTexturedFragmentShader);
            DefaultTextureProgram.Link();
            DefaultTextureProgram.AddUniformLocation("window_matrix");
            DefaultTextureProgram.AddUniformLocation("model_matrix");
            DefaultTextureProgram.AddUniformLocation("projection_matrix");
            DefaultTextureProgram.AddUniformLocation("camera_matrix");
            DefaultTextureProgram.AddUniformLocation("texture");
            DefaultTextureProgram.AddUniformLocation("alpha");
            DefaultTextureProgram.AddUniformLocation("tintR");
            DefaultTextureProgram.AddUniformLocation("tintG");
            DefaultTextureProgram.AddUniformLocation("tintB");
            DefaultTextureProgram.AddUniformLocation("tintA");
            DefaultTextureProgram.AddAttribLocation("vertex_coord");
            DefaultTextureProgram.AddAttribLocation("vertex_texcoord");

            if (LatestAvailableVersion >= 40 && useLatestAvailable)
            {
                GL.BindFragDataLocation(DefaultShapeProgram.Id, 0, "FragColor");
                GL.BindFragDataLocation(DefaultTextureProgram.Id, 0, "FragColor");
            }

            WindowMatrix = Matrix4.Identity;
            ProjectionMatrix = new Matrix4(new Vector4(2F / window.Width, 0, 0, 0),
                                           new Vector4(0, -2F / window.Height, 0, 0),
                                           new Vector4(0, 0, 1, 0),
                                           new Vector4(0, 0, 0, 1)) * Matrix4.CreateTranslation(-1, 1, 0);

            var newCam = new Camera();
            newCam.Activate();

            renderList = new LinkedList<IRenderable>();
            updateList = new LinkedList<IUpdatable>();
            renderRemoveList = new LinkedList<IRenderable>();
            updateRemoveList = new LinkedList<IUpdatable>();

            Utility.Utility.ProcessOGLErrors();

            CreatePrimitives();

            ChangeViewPort(window.Width, window.Height);
            Camera.CurrentCamera.X = ViewportWidth / 2;
            Camera.CurrentCamera.Y = ViewportHeight / 2;

            var stage = new Stage();
            AddEntity(stage);
            window.GameWindow.Load += ((x, y) => loadHandler(stage));
            window.GameWindow.Load += MainLoop;

            window.GameWindow.Run();

            return stage;
        }