コード例 #1
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
#if DIRECTX
                if (disposing)
                {
                    if (_buffer != null)
                    {
                        _buffer.Dispose();
                        _buffer = null;
                    }
                }
#elif PSM
                //Do nothing
                _vertexArray = null;
#else
                GraphicsDevice.AddDisposeAction(() =>
                {
                    GL.DeleteBuffers(1, ref vbo);
                    GraphicsExtensions.CheckGLError();
                });
#endif
            }
            base.Dispose(disposing);
        }
コード例 #2
0
ファイル: Shader.cs プロジェクト: zmyspc/MonoGame
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
#if OPENGL
                GraphicsDevice.AddDisposeAction(() =>
                {
                    if (_shaderHandle != -1)
                    {
                        if (GL.IsShader(_shaderHandle))
                        {
                            GL.DeleteShader(_shaderHandle);
                            GraphicsExtensions.CheckGLError();
                        }
                        _shaderHandle = -1;
                    }
                });
#endif

#if DIRECTX
                GraphicsDeviceResetting();
#endif
            }

            base.Dispose(disposing);
        }
コード例 #3
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
#if DIRECTX
                if (disposing)
                {
                    if (_renderTargetView != null)
                    {
                        _renderTargetView.Dispose();
                        _renderTargetView = null;
                    }
                    if (_depthStencilView != null)
                    {
                        _depthStencilView.Dispose();
                        _depthStencilView = null;
                    }
                }
#elif OPENGL
                GraphicsDevice.AddDisposeAction(() =>
                {
                    GL.DeleteRenderbuffers(1, ref this.glDepthStencilBuffer);
                    GraphicsExtensions.CheckGLError();

                    if (this.glFramebuffer > 0)
                    {
                        GL.DeleteFramebuffers(1, ref this.glFramebuffer);
                        GraphicsExtensions.CheckGLError();
                    }
                });
#endif
            }
            base.Dispose(disposing);
        }
コード例 #4
0
ファイル: Texture.cs プロジェクト: zielakbn/MonoGame
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
#if DIRECTX
                if (disposing)
                {
                    if (_resourceView != null)
                    {
                        _resourceView.Dispose();
                        _resourceView = null;
                    }

                    if (_texture != null)
                    {
                        _texture.Dispose();
                        _texture = null;
                    }
                }
#elif OPENGL
                GraphicsDevice.AddDisposeAction(() =>
                {
                    GL.DeleteTextures(1, ref glTexture);
                    GraphicsExtensions.CheckGLError();
                    glTexture = -1;
                });

                glLastSamplerState = null;
#endif
            }
            base.Dispose(disposing);
        }
コード例 #5
0
        private void PlatformDispose()
        {
            // Free all the cached shader programs.
            _programCache.Dispose();

            GraphicsDevice.AddDisposeAction(() =>
            {
                if (this.glRenderTargetFrameBuffer > 0)
                {
                    Framebuffer.Delete(this.glRenderTargetFrameBuffer);
                }

#if WINDOWS || LINUX || ANGLE
                Context.Dispose();
                Context = null;

                if (Threading.BackgroundContext != null)
                {
                    Threading.BackgroundContext.Dispose();
                    Threading.BackgroundContext = null;
                    Threading.WindowInfo        = null;
                }
#endif
            });
        }
コード例 #6
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
#if DIRECTX
                if (disposing)
                {
                    SharpDX.Utilities.Dispose(ref _renderTargetView);
                    SharpDX.Utilities.Dispose(ref _depthStencilView);
                }
#elif PSM
                _frameBuffer.Dispose();
#elif OPENGL
                GraphicsDevice.AddDisposeAction(() =>
                {
                    if (this.glStencilBuffer != 0 && this.glStencilBuffer != this.glDepthBuffer)
                    {
                        GL.DeleteRenderbuffers(1, ref this.glStencilBuffer);
                    }
                    GL.DeleteRenderbuffers(1, ref this.glDepthBuffer);
                    GraphicsExtensions.CheckGLError();
                });
#endif
            }
            base.Dispose(disposing);
        }
コード例 #7
0
ファイル: OcclusionQuery.cs プロジェクト: conankzhang/fez
 protected override void Dispose(bool disposing)
 {
     if (!this.IsDisposed)
     {
         GraphicsDevice.AddDisposeAction((Action)(() => GL.DeleteQueries(1, ref this.glQueryId)));
     }
     base.Dispose(disposing);
 }
コード例 #8
0
ファイル: RenderTarget2D.cs プロジェクト: conankzhang/fez
 protected override void Dispose(bool disposing)
 {
     if (!this.IsDisposed && this.GraphicsDevice != null && !this.GraphicsDevice.IsDisposed)
     {
         GraphicsDevice.AddDisposeAction((Action)(() => GraphicsExtensions.DeleteRenderbuffers(1, ref this.glDepthStencilBuffer)));
     }
     base.Dispose(disposing);
 }
コード例 #9
0
ファイル: VertexBuffer.cs プロジェクト: conankzhang/fez
 protected override void Dispose(bool disposing)
 {
     if (!this.IsDisposed)
     {
         GraphicsDevice.AddDisposeAction((Action)(() => GL.DeleteBuffers(1, ref this.vbo)));
     }
     base.Dispose(disposing);
 }
コード例 #10
0
 protected override void Dispose(bool disposing)
 {
     if (!IsDisposed)
     {
         GraphicsDevice.AddDisposeAction(() =>
         {
             Game.Instance.GraphicsDevice.GLDevice.DeleteTexture(texture);
         });
     }
     base.Dispose(disposing);
 }
コード例 #11
0
 protected override void Dispose(bool disposing)
 {
     if (!IsDisposed)
     {
         GraphicsDevice.AddDisposeAction(() =>
         {
             OpenGLDevice.Instance.DeleteIndexBuffer(Handle);
         });
     }
     base.Dispose(disposing);
 }
コード例 #12
0
ファイル: OcclusionQuery.cs プロジェクト: lovelife/MonoGame
 protected override void Dispose(bool disposing)
 {
     if (!IsDisposed)
     {
         GraphicsDevice.AddDisposeAction(() =>
         {
             GL.DeleteQueries(1, ref glQueryId);
         });
     }
     base.Dispose(disposing);
 }
コード例 #13
0
ファイル: VertexBuffer.cs プロジェクト: khbecker/FNA
 protected override void Dispose(bool disposing)
 {
     if (!IsDisposed)
     {
         GraphicsDevice.AddDisposeAction(() =>
         {
             Game.Instance.GraphicsDevice.GLDevice.DeleteVertexBuffer(Handle);
             Handle = null;
         });
     }
     base.Dispose(disposing);
 }
コード例 #14
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
                GraphicsDevice.AddDisposeAction(() =>
                {
                    this.GraphicsDevice.PlatformDeleteRenderTarget(this);
                });
            }

            base.Dispose(disposing);
        }
コード例 #15
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
                GraphicsDevice.AddDisposeAction(() =>
                {
                    GL.DeleteBuffers(1, ref vbo);
                    GraphicsExtensions.CheckGLError();
                });
            }

            base.Dispose(disposing);
        }
コード例 #16
0
        private void PlatformDispose()
        {
            // Free all the cached shader programs.
            _programCache.Dispose();

            GraphicsDevice.AddDisposeAction(() =>
            {
#if DESKTOPGL || ANGLE
                Context.Dispose();
                Context = null;
#endif
            });
        }
コード例 #17
0
ファイル: Texture.cs プロジェクト: tanis2000/FEZ
 protected override void Dispose(bool disposing)
 {
     if (!this.IsDisposed)
     {
         GraphicsDevice.AddDisposeAction((Action)(() =>
         {
             GL.DeleteTextures(1, ref this.glTexture);
             this.glTexture = -1;
         }));
         this.glLastSamplerState = (SamplerState)null;
     }
     base.Dispose(disposing);
 }
コード例 #18
0
ファイル: Texture.OpenGL.cs プロジェクト: Breadmouth/Gravitas
 private void DeleteGLTexture()
 {
     if (glTexture > 0)
     {
         int texture = glTexture;
         GraphicsDevice.AddDisposeAction(() =>
         {
             GL.DeleteTextures(1, ref texture);
             GraphicsExtensions.CheckGLError();
         });
     }
     glTexture = -1;
 }
コード例 #19
0
 protected override void Dispose(bool disposing)
 {
     if (!IsDisposed)
     {
         GraphicsDevice.AddDisposeAction(() =>
         {
             if (glDepthStencilBuffer != 0)
             {
                 Game.Instance.GraphicsDevice.GLDevice.DeleteRenderbuffer(glDepthStencilBuffer);
             }
         });
     }
     base.Dispose(disposing);
 }
コード例 #20
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
#if OPENGL
                GraphicsDevice.AddDisposeAction(() =>
                {
                    GL.DeleteQueries(1, ref glQueryId);
                    GraphicsExtensions.CheckGLError();
                });
#elif DIRECTX
#endif
            }
            base.Dispose(disposing);
        }
コード例 #21
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
                GraphicsDevice.AddDisposeAction(() =>
                {
                    if (this.glStencilBuffer != 0 && this.glStencilBuffer != this.glDepthBuffer)
                    {
                        GraphicsDevice.Renderbuffer.Delete(this.glStencilBuffer);
                    }
                    if (this.glDepthBuffer != 0)
                    {
                        GraphicsDevice.Renderbuffer.Delete(this.glDepthBuffer);
                    }
                });
            }

            base.Dispose(disposing);
        }
コード例 #22
0
 protected override void Dispose(bool disposing)
 {
     if (!this.IsDisposed)
     {
         GraphicsDevice.AddDisposeAction((Action)(() =>
         {
             if (this._shaderHandle == -1)
             {
                 return;
             }
             if (GL.IsShader(this._shaderHandle))
             {
                 GL.DeleteShader(this._shaderHandle);
             }
             this._shaderHandle = -1;
         }));
     }
     base.Dispose(disposing);
 }
コード例 #23
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
                GraphicsDevice.AddDisposeAction(() =>
                {
                    if (_shaderHandle != -1)
                    {
                        if (GL.IsShader(_shaderHandle))
                        {
                            GL.DeleteShader(_shaderHandle);
                        }
                        _shaderHandle = -1;
                    }
                });
            }

            base.Dispose(disposing);
        }
コード例 #24
0
        private void PlatformDispose()
        {
            // Free all the cached shader programs.
            _programCache.Dispose();

            GraphicsDevice.AddDisposeAction(() =>
            {
#if WINDOWS || LINUX || ANGLE
                Context.Dispose();
                Context = null;

                if (Threading.BackgroundContext != null)
                {
                    Threading.BackgroundContext.Dispose();
                    Threading.BackgroundContext = null;
                    Threading.WindowInfo        = null;
                }
#endif
            });
        }
コード例 #25
0
ファイル: GraphicsDevice.cs プロジェクト: conankzhang/fez
 protected virtual void Dispose(bool disposing)
 {
     if (this._isDisposed)
     {
         return;
     }
     if (disposing)
     {
         GraphicsResource.DisposeAll();
         this._programCache.Dispose();
         GraphicsDevice.AddDisposeAction((Action)(() =>
         {
             if (this.glRenderTargetFrameBuffer <= 0U)
             {
                 return;
             }
             GraphicsExtensions.DeleteFramebuffers(1, ref this.glRenderTargetFrameBuffer);
         }));
     }
     this._isDisposed = true;
 }
コード例 #26
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
#if DIRECTX
                if (disposing)
                {
                    SharpDX.Utilities.Dispose(ref _resourceView);
                    SharpDX.Utilities.Dispose(ref _texture);
                }
#elif OPENGL
                GraphicsDevice.AddDisposeAction(() =>
                {
                    GL.DeleteTextures(1, ref glTexture);
                    GraphicsExtensions.CheckGLError();
                    glTexture = -1;
                });

                glLastSamplerState = null;
#endif
            }
            base.Dispose(disposing);
        }