61 lines
2.1 KiB
C#
61 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace StgSharp.Graphics.GL
|
|
{
|
|
#pragma warning disable CA1008
|
|
#pragma warning disable CA1028
|
|
public enum FrameBufferTarget:uint
|
|
#pragma warning restore CA1028
|
|
#pragma warning restore CA1008
|
|
{
|
|
Read = GLconst.READ_FRAMEBUFFER,
|
|
All = GLconst.FRAMEBUFFER,
|
|
Draw = GLconst.DRAW_FRAMEBUFFER,
|
|
}
|
|
|
|
public class FrameBuffer : BufferObjectBase
|
|
{
|
|
internal unsafe FrameBuffer(int count, glRenderStream contextBinding)
|
|
{
|
|
binding = contextBinding;
|
|
_bufferHandle = new glHandleSet(count);
|
|
((GLcontext*)binding.ContextHandle)->glGenFramebuffers((uint)count,_bufferHandle.handle);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
|
|
/// <see langword="FrameBufferTarget.All"/> will be set as default target.
|
|
/// </summary>
|
|
/// <param name="index">Index of object to be binded in handle set</param>
|
|
public unsafe override void Bind(int index)
|
|
{
|
|
glFunc.BindFrameBuffer(FrameBufferTarget.All,_bufferHandle[index]);
|
|
}
|
|
|
|
public static void BindNull()
|
|
{
|
|
glFunc.BindFrameBuffer(FrameBufferTarget.All,glHandle.Zero);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
|
|
/// Target of this frame buffer should be set manually.
|
|
/// </summary>
|
|
/// <param name="target">The frame buffer target of the binding operation.</param>
|
|
/// <param name="index">Index of object to be binded in handle set</param>
|
|
public unsafe void Bind(FrameBufferTarget target, int index)
|
|
{
|
|
((GLcontext*)binding.ContextHandle)->glBindFramebuffer((uint)target, _bufferHandle[index].Value);
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|