OOGL.FrameBuffer.FrameBuffer C# (CSharp) Méthode

FrameBuffer() public méthode

public FrameBuffer ( int width, int height ) : System
width int
height int
Résultat System
		public FrameBuffer(int width, int height)
		{		
			this.width = width;
			this.height = height;

			GL.GenTextures(1, out handleTexture);
			GL.BindTexture(TextureTarget.Texture2D, handleTexture);
			GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba8, width, height, 0, PixelFormat.Rgba, PixelType.UnsignedByte, IntPtr.Zero);
			GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) TextureMinFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) TextureMagFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) TextureWrapMode.ClampToBorder);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int) TextureWrapMode.ClampToBorder);

			GL.GenTextures(1, out handleDepth);
            GL.BindTexture(TextureTarget.Texture2D, handleDepth );
            GL.TexImage2D(TextureTarget.Texture2D, 0, (PixelInternalFormat) All.DepthComponent32, width, height, 0, PixelFormat.DepthComponent, PixelType.UnsignedInt, IntPtr.Zero);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) TextureMinFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) TextureMagFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) TextureWrapMode.ClampToBorder);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int) TextureWrapMode.ClampToBorder);
			
			GL.Ext.GenFramebuffers(1, out handleFrameBuffer);
			GL.Ext.BindFramebuffer(FramebufferTarget.FramebufferExt, handleFrameBuffer);
			GL.Ext.FramebufferTexture2D(FramebufferTarget.FramebufferExt, FramebufferAttachment.ColorAttachment0Ext, TextureTarget.Texture2D, handleTexture, 0);
			GL.Ext.FramebufferTexture2D(FramebufferTarget.FramebufferExt, FramebufferAttachment.DepthAttachmentExt, TextureTarget.Texture2D, handleDepth, 0);
			
			FramebufferErrorCode errorCode = GL.Ext.CheckFramebufferStatus(FramebufferTarget.FramebufferExt);

			if(errorCode != FramebufferErrorCode.FramebufferCompleteExt)
			{
				throw new Exception(string.Format("Framebuffer construction failed with error: {0}", errorCode));
			}
		}