Esempio n. 1
0
        protected override void OnResize(EventArgs e)
        {
            base.OnResize(e);

            //EJ HELT FIXAD!!!!!1

            //GL.Viewport(0, 0, Width, Height);
            GL.Viewport(ClientRectangle);
            GL.MatrixMode(MatrixMode.Projection);
            GL.LoadIdentity();
            projection_M4 = Matrix4.CreateOrthographic(Width, Height, -1, 1);
            GL.LoadMatrix(ref projection_M4);
            GL.UniformMatrix4(uniformMatProj_I, false, ref projection_M4);
            camera_CAM = new Misc.Camera(new Vector3((Width / 2), (Height / 2), 0));
            view_M4 = Matrix4.LookAt(camera_CAM.Position, new Vector3(0, 0, -1), new Vector3(0, 1, 0));
            //cameraCAM.Position = player.Position;

            //Console.WriteLine("H: " + Height + " - W: " + Width);

            //Flytta/Resiza textboxen
            //Skapa om FBO texturen
            //M.m...
        }
Esempio n. 2
0
        //Methods
        //-Protected
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            KeyDown += OnKeyDown;
            KeyUp += OnKeyUp;
            MouseDown += OnMouseButtonDown;
            MouseUp += OnMouseButtonUp;

            System.Console.WriteLine("OpenGL version: " + GL.GetString(StringName.Version));
            System.Console.WriteLine("Graphics card vendor: " + GL.GetString(StringName.Vendor));
            System.Console.WriteLine("Graphics card: " + GL.GetString(StringName.Renderer));
            System.Console.WriteLine("Shading language version" + GL.GetString(StringName.ShadingLanguageVersion));
            //System.Console.WriteLine("Extensions: " + GL.GetString(StringName.Extensions));
            System.Console.WriteLine("");
            Console.WriteLine("Max Vertex Vectors: " + GL.GetInteger(GetPName.MaxVertexUniformVectors).ToString());
            Console.WriteLine("Max Fragment Vectors: " + GL.GetInteger(GetPName.MaxFragmentUniformVectors).ToString());
            Console.WriteLine("Max Texture Units: " + GL.GetInteger(GetPName.MaxTextureUnits).ToString());
            Console.WriteLine("");

            Misc.Time.Init(); //Init main timers
            Title = "Caliginous - OpenTK";

            VSync = VSyncMode.Off;
            GL.Enable(EnableCap.CullFace);
            //GL.Enable(EnableCap.DepthTest); //Greatly increases performance (at the cost of memory) but have to pay attention of the Z (i.e for text)! (Checka hur alpha funkar med detta!? http://www.opengl.org/wiki/Transparency_Sorting )
            //GL.DepthFunc(DepthFunction.Lequal);
            GL.Enable(EnableCap.Blend);
            //GL.Enable(EnableCap.AlphaTest);
            //GL.BlendFunc(BlendingFactorSrc.One, BlendingFactorDest.OneMinusSrcAlpha);
            GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
            GL.ClearColor(Color.Black);

            GL.MatrixMode(MatrixMode.Projection);
            GL.LoadIdentity();
            projection_M4 = Matrix4.CreateOrthographic(Width, Height, -1, 1);
            camera_CAM = new Misc.Camera(new Vector3((Width / 2), (Height / 2), 0));
            view_M4 = Matrix4.LookAt(camera_CAM.Position, new Vector3(0, 0, -1), new Vector3(0, 1, 0));

            //Create VBOs
            vBOMain_I = Misc.VBOHandler.AddVBO(10024);
            #if DEBUG
            Misc.Misc.GLError("(Main VBO Gen)");
            #endif
            vBOFont_I = Misc.VBOHandler.AddVBO(10024);
            #if DEBUG
            Misc.Misc.GLError("(Font VBO Gen)");
            #endif
            vBOEvent_I = Misc.VBOHandler.AddVBO(10024);
            #if DEBUG
            Misc.Misc.GLError("(Event VBO Gen)" + Environment.NewLine);
            Console.WriteLine("Main VBO: " + vBOMain_I.ToString());
            Console.WriteLine("Font VBO: " + vBOFont_I.ToString());
            Console.WriteLine("Event VBO: " + vBOEvent_I.ToString());
            Console.WriteLine("");
            #endif
            //Create FBO(s)
            Misc.FBOHandler.CreateFBO(Width, Height);
            Misc.FBOHandler.BindScreenBuffer();

            //Load shaders
            progID_I = Misc.ShaderHandler.CreateProgram();
            #if DEBUG
            Misc.Misc.GLError("(Main 1)");
            #endif
            uniformMatProj_I = Misc.ShaderHandler.GetUniformLoc(progID_I, "m4Projection");
            uniformMatModV_I = Misc.ShaderHandler.GetUniformLoc(progID_I, "m4ModelView");
            uniformProjView_I = Misc.ShaderHandler.GetUniformLoc(progID_I, "m4ProjView");
            uniformView_I = Misc.ShaderHandler.GetUniformLoc(progID_I, "m4View");
            uniformMod_I = Misc.ShaderHandler.GetUniformLoc(progID_I, "m4Model");
            uniformTime_I = Misc.ShaderHandler.GetUniformLoc(progID_I, "fTime");
            uniformStep_I = Misc.ShaderHandler.GetUniformLoc(progID_I, "v2Step");

            //Send uniforms that wont change often
            GL.UniformMatrix4(uniformMatProj_I, false, ref projection_M4);
            view_M4 = Matrix4.CreateTranslation(-camera_CAM.Position);
            GL.UniformMatrix4(uniformView_I, false, ref view_M4);
            //GL.Uniform2(uniformStep_I, RayStep_V2);

            //Load font(s) and textbox
            Misc.FontHandler.AddFont(1, "Images/TestFont-TransparentBG.png", 100f, 0f, 0f, 26, 4, vBOFont_I, progID_I); //Font 1 - Vanlig text
            Misc.FontHandler.AddFont(2, "Images/TestFont-TransparentBG.png", 80f, 0f, 0f, 26, 4, vBOFont_I, progID_I); //Font 2 - Textbox text
            mainTextbox_TB = new Misc.TextBox(-((Width / 2)), -(Height / 2), 310f, 125f, "Images/TB-Border.png", "", Color.White, 2, vBOEvent_I, progID_I);

            //Init/Load EventHandler
            //eh = new EventEngine.EventHandler("/Events", "/Images/TB-Border.png");

            kBState_KbS = new KeyboardState();

            //---Init and create stuff/objects---
            gameworld = new World();

            player = new player(new Vector3(410, 310, 0), new Vector2(45, 45), "Images/BMongo-Trans.png");

            nonpc = new npc(new Vector3(410, 420, 0), new Vector2(45, 45), "Images/xox.png");

            //Lights
            //Misc.LightHandler.AddLight(new Vector3(player.Center), new Vector3(0.2f, 0.2f, 0.05f), 300, 10); //Used when testing shadows
            Misc.LightHandler.AddLight(new Vector3(player.Center), Color.Gray, 200, 0); //Used when testing shadows
            //Misc.LightHandler.AddLight(new Vector3(0, 0, 0), Color.White, 200, 0); //Used when testing shadows
            //Misc.LightHandler.AddLight(new Vector3(player.Center), Color.White, 10, 20);
            //Misc.LightHandler.AddLight(new Vector3(125, 250, 0), Color.Green, 100, 20);
            //Misc.LightHandler.AddLight(new Vector3(500, 100, 0), Color.Red, 20, 10);
            //Misc.LightHandler.AddLight(new Vector3(550, 100, 0), Color.Green, 20, 10);

            //Misc.LightHandler.ColorMapQuad = new Misc.Quad(new Vector3(-(Width / 2), -(Height / 2), 0), new Vector2(Width, Height), ""); //Fixa in så den skapas inne i LightHandler???!?
            //Misc.LightHandler.ShadowMapQuad = new Misc.Quad(new Vector3(-(Width / 2), -(Height / 2), 0), new Vector2(Width, Height), ""); //Fixa in så den skapas inne i LightHandler???!?
            Misc.LightHandler.RenderQuad = new Misc.Quad(new Vector3(-(Width / 2), -(Height / 2), 0), new Vector2(Width, Height), ""); //Fixa in så den skapas inne i LightHandler???!?
        }