]> O.S.I.I.S - jp/crow.git/commitdiff
* GOLIBTest_fps.cs: divers
authorjpbruyere <jp.bruyere@hotmail.com>
Wed, 20 May 2015 12:02:49 +0000 (14:02 +0200)
committerjpbruyere <jp.bruyere@hotmail.com>
Wed, 20 May 2015 12:02:49 +0000 (14:02 +0200)
* Rectangles.cs: to string overload

* OpenTKGameWindow.cs: - correct resizing bug due to missing Viewport
  setup

Tests/GOLIBTest_fps.cs
src/OpenTKGameWindow.cs
src/Rectangles.cs

index aaf5631e21c734076250aa6c7776fa2f5d52a055..9bbcb1adf63056c40f4dabda048e844e299404ee 100644 (file)
@@ -32,14 +32,14 @@ namespace test
 \r
                                if (_fps > fpsMax) {\r
                                        fpsMax = _fps;\r
-                                       ValueChanged(this, new ValueChangeEventArgs ("fpsMax", fpsMax, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax, _fps));\r
                                } else if (_fps < fpsMin) {\r
-                                       ValueChanged(this, new ValueChangeEventArgs ("fpsMin", fpsMin, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin, _fps));\r
                                        fpsMin = _fps;\r
                                }\r
 \r
                                if (ValueChanged != null)\r
-                                       ValueChanged(this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
 \r
                                //ValueChanged.Raise (this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
                        }\r
@@ -67,7 +67,7 @@ namespace test
                #endregion\r
 \r
                public GOLIBTest_fps ()\r
-                       : base(400, 200,"test")\r
+                       : base(600, 400,"test")\r
                {}\r
 \r
                Container g;\r
index 86d8d3124c8fb5f9d55972d4e694c098f5a0a009..3ee7e6471d3537b6c67d4bc31e40d643e62545bf 100755 (executable)
@@ -135,8 +135,6 @@ namespace go
                #endregion\r
 \r
                #region graphic contexte\r
-               bool recreateContext = true;\r
-\r
                Context ctx;\r
                Surface surf;\r
                byte[] bmp;\r
@@ -146,20 +144,19 @@ namespace go
                go.GLBackend.Shader shader;\r
                Matrix4 projectionMatrix, \r
                                modelviewMatrix;\r
+               int[] viewport = new int[4];\r
 \r
                Rectangle dirtyZone = Rectangle.Empty;\r
-\r
                void createContext()\r
-               {\r
+               {                       \r
                        createOpenGLSurface ();\r
                        if (uiQuad != null)\r
                                uiQuad.Dispose ();\r
-                       uiQuad = new QuadVAO (0, 0, ClientRectangle.Width, ClientRectangle.Height,0,1,1,-1);\r
+                       uiQuad = new QuadVAO (0, 0, ClientRectangle.Width, ClientRectangle.Height, 0, 1, 1, -1);\r
                        projectionMatrix = Matrix4.CreateOrthographicOffCenter \r
                                (0, ClientRectangle.Width, ClientRectangle.Height, 0, 0, 1);\r
                        modelviewMatrix = Matrix4.Identity;\r
                        redrawClip.AddRectangle (ClientRectangle);\r
-                       recreateContext = false;\r
                }\r
                void createOpenGLSurface()\r
                {\r
@@ -170,7 +167,7 @@ namespace go
                        bmp = new byte[bmpSize];\r
 \r
                        //create texture\r
-                       if (texID > 0)\r
+                       if (GL.IsTexture(texID))\r
                                GL.DeleteTexture (texID);\r
                        GL.GenTextures(1, out texID);\r
                        GL.ActiveTexture (TextureUnit.Texture0);\r
@@ -187,6 +184,8 @@ namespace go
                }\r
                void OpenGLDraw()\r
                {\r
+                       GL.GetInteger (GetPName.Viewport, viewport);\r
+                       GL.Viewport (0, 0, ClientRectangle.Width, ClientRectangle.Height);\r
                        shader.Enable ();\r
                        shader.ProjectionMatrix = projectionMatrix;\r
                        shader.ModelViewMatrix = modelviewMatrix;\r
@@ -203,6 +202,7 @@ namespace go
                        GL.BindTexture(TextureTarget.Texture2D, 0);\r
 \r
                        shader.Disable ();\r
+                       GL.Viewport (viewport [0], viewport [1], viewport [2], viewport [3]);\r
                }\r
                        \r
                #endregion\r
@@ -226,15 +226,7 @@ namespace go
                        GraphicObject[] invGOList = new GraphicObject[GraphicObjects.Count];\r
                        GraphicObjects.CopyTo (invGOList,0);\r
                        invGOList = invGOList.Reverse ().ToArray ();\r
-//\r
-//                     foreach (GraphicObject p in invGOList) {\r
-//                             if (p.Visible) {\r
-//                                     layoutTime.Start ();\r
-//                                     while(!p.LayoutIsValid)\r
-//                                             p.UpdateLayout ();\r
-//                                     layoutTime.Stop ();\r
-//                             }\r
-//                     }\r
+\r
                        while (Interface.LayoutingQueue.Count > 0) {\r
                                LayoutingQueueItem lqi = Interface.LayoutingQueue.Dequeue ();\r
                                lqi.ProcessLayouting ();\r
@@ -252,11 +244,12 @@ namespace go
 \r
 \r
                        lock (redrawClip) {\r
-                               if (redrawClip.count > 0) {\r
+                               if (redrawClip.count > 0) {                                     \r
 //                                     #if DEBUG_CLIP_RECTANGLE\r
 //                                     redrawClip.stroke (ctx, new Color(1.0,0,0,0.3));\r
 //                                     #endif\r
-                                       redrawClip.clearAndClip (ctx);//rajouté après, tester si utile\r
+                                       redrawClip.clearAndClip (ctx);//rajouté après, tester si utile        \r
+\r
                                        //Link.draw (ctx);\r
                                        foreach (GraphicObject p in invGOList) {\r
                                                if (p.Visible) {\r
@@ -282,6 +275,7 @@ namespace go
                                        redrawClip.Reset ();\r
                                }\r
                        }\r
+                       //surf.WriteToPng (@"/mnt/data/test.png");\r
                        ctx.Dispose ();\r
                        surf.Dispose ();\r
 //                     if (ToolTip.isVisible) {\r
@@ -326,8 +320,8 @@ namespace go
                protected override void OnRenderFrame(FrameEventArgs e)\r
                {\r
                        base.OnRenderFrame(e);\r
-                       if (recreateContext)\r
-                               createContext ();\r
+//                     if (recreateContext)\r
+//                             createContext ();\r
                        OpenGLDraw ();\r
                }\r
                protected override void OnLoad(EventArgs e)\r
@@ -350,6 +344,7 @@ namespace go
 \r
                        int matl = GL.GetInteger (GetPName.MaxArrayTextureLayers);\r
                        int mts = GL.GetInteger (GetPName.MaxTextureSize);\r
+\r
                        shader = new go.GLBackend.TexturedShader ();\r
                }\r
                protected override void OnUnload(EventArgs e)\r
@@ -363,7 +358,11 @@ namespace go
                protected override void OnResize(EventArgs e)\r
                {\r
                        base.OnResize (e);\r
-                       recreateContext = true;\r
+                       createContext ();\r
+                       foreach (GraphicObject g in GraphicObjects) {\r
+                               g.RegisterForLayouting ((int)LayoutingType.All);\r
+                               //g.registerForGraphicUpdate();\r
+                       }\r
                }\r
                #endregion\r
 \r
@@ -454,7 +453,7 @@ namespace go
 \r
         #region keyboard Handling\r
         void Keyboard_KeyDown(object sender, KeyboardKeyEventArgs e)\r
-        {\r
+        {                      \r
                        if (_focusedWidget == null)\r
                                return;\r
                        _focusedWidget.onKeyDown (sender, e);\r
index 71ebf47769d7fa408d5e4782c85e53d70c3ff2c9..de7b8438899dfabbb6081b46840637421b81823d 100644 (file)
@@ -200,5 +200,13 @@ namespace go
             ctx.Operator = Operator.Over;\r
             //ctx.Restore();\r
         }\r
+               public override string ToString ()\r
+               {\r
+                       string tmp = "";\r
+                       foreach (Rectangle r in list) {\r
+                               tmp += r.ToString ();\r
+                       }\r
+                       return tmp;\r
+               }\r
     }\r
 }\r