diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2017-08-26 04:57:51 +0200 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2017-08-26 04:57:51 +0200 |
| commit | dde48ba7c6017539b5d8a4539030bea0715b0374 (patch) | |
| tree | f9e4b463244aac9bf1cf2d5bfb3473b22b3a0bbc /Tests/InterfaceControler.cs | |
| parent | 5f68cf21b47b88e4e1de7fed7bd9b8b56b5dfa3d (diff) | |
test texture surface backend with sdl and xcbTestXCBandSDL
Diffstat (limited to 'Tests/InterfaceControler.cs')
| -rw-r--r-- | Tests/InterfaceControler.cs | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/Tests/InterfaceControler.cs b/Tests/InterfaceControler.cs index 4d988c10..af0fe3d9 100644 --- a/Tests/InterfaceControler.cs +++ b/Tests/InterfaceControler.cs @@ -52,7 +52,8 @@ namespace Crow public override void initGL(){ quad = new Crow.vaoMesh (0, 0, 0, 1, 1, 1, -1); //ifaceModelMat = Matrix4.CreateRotationX(MathHelper.PiOver2) * Matrix4.CreateTranslation(Vector3.UnitY); - CrowInterface.ProcessResize(iRect); + //Cairo.Device dev = new Cairo.Device(); + CrowInterface.ProcessResize(); createContext (); //CrowInterface.ProcessResize (iRect); } @@ -162,14 +163,14 @@ namespace Crow while (true) { CrowInterface.Update (); - //Thread.Sleep (1); + Thread.Sleep (1); } } #region Mouse And Keyboard handling public virtual void ProcessResize(Rectangle newSize){ iRect = newSize; - CrowInterface.ProcessResize(newSize); + CrowInterface.ProcessResize(); createContext (); GL.Viewport (0, 0, newSize.Width, newSize.Height);//TODO:find a better place for this } @@ -214,12 +215,16 @@ namespace Crow GL.ActiveTexture (TextureUnit.Texture0); GL.BindTexture(TextureTarget.Texture2D, texID); + byte[] data = null; + if (CrowInterface.bmp != null) + data = (CrowInterface.bmp as Cairo.ImageSurface).Data; + GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, iRect.Width, iRect.Height, 0, - OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, CrowInterface.bmp); + OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, data); - GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear); - GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); + GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Nearest); + GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Nearest); GL.BindTexture(TextureTarget.Texture2D, 0); } @@ -234,10 +239,13 @@ namespace Crow GL.BindTexture (TextureTarget.Texture2D, texID); if (Monitor.TryEnter(CrowInterface.RenderMutex)) { if (CrowInterface.IsDirty) { + byte[] data = null; + if (CrowInterface.dirtyBmp != null) + data = (CrowInterface.dirtyBmp as Cairo.ImageSurface).Data; GL.TexSubImage2D (TextureTarget.Texture2D, 0, CrowInterface.DirtyRect.Left, CrowInterface.DirtyRect.Top, CrowInterface.DirtyRect.Width, CrowInterface.DirtyRect.Height, - OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, CrowInterface.dirtyBmp); + OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, data); CrowInterface.IsDirty = false; } Monitor.Exit (CrowInterface.RenderMutex); |