//static List<WeakReference<FBORenderContext>> renderContextList = new List<WeakReference<FBORenderContext>>(); //public FBORenderContext() //{ // renderContextList.Add(new WeakReference<FBORenderContext>(this)); //} //public override void Destroy() //{ // bool found = false; // WeakReference<FBORenderContext> target = null; // for (int index = 0; index < renderContextList.Count; index++) // { // target = renderContextList[index]; // FBORenderContext context; // if (target.TryGetTarget(out context)) // { // if (context == this) // { break; } // } // } // if (found) // { // renderContextList.Remove(target); // } // base.Destroy(); //} //public static FBORenderContext GetCurrentRenderContext() //{ // IntPtr renderContext = Win32.wglGetCurrentContext(); //} /// <summary> /// Creates the render context provider. Must also create the OpenGL extensions. /// </summary> /// <param name="width"></param> /// <param name="height"></param> /// <param name="bitDepth"></param> /// <param name="parameter"></param> /// <returns></returns> public override bool Create(int width, int height, int bitDepth, object parameter) { // Call the base class. base.Create(width, height, bitDepth, parameter); // Create frame buffer object. Framebuffer framebuffer = CreateFramebuffer(width, height); this.framebuffer = framebuffer; // Create the DIB section. var dibSection = new DIBSection(); dibSection.Create(this.DeviceContextHandle, width, height, bitDepth); this.dibSection = dibSection; return(true); }
//static List<WeakReference<FBORenderContext>> renderContextList = new List<WeakReference<FBORenderContext>>(); //public FBORenderContext() //{ // renderContextList.Add(new WeakReference<FBORenderContext>(this)); //} //public override void Destroy() //{ // bool found = false; // WeakReference<FBORenderContext> target = null; // for (int index = 0; index < renderContextList.Count; index++) // { // target = renderContextList[index]; // FBORenderContext context; // if (target.TryGetTarget(out context)) // { // if (context == this) // { break; } // } // } // if (found) // { // renderContextList.Remove(target); // } // base.Destroy(); //} //public static FBORenderContext GetCurrentRenderContext() //{ // IntPtr renderContext = Win32.wglGetCurrentContext(); //} /// <summary> /// Creates the render context provider. Must also create the OpenGL extensions. /// </summary> /// <param name="width"></param> /// <param name="height"></param> /// <param name="bitDepth"></param> /// <param name="parameter"></param> /// <returns></returns> public override bool Create(int width, int height, int bitDepth, object parameter) { // Call the base class. base.Create(width, height, bitDepth, parameter); // Create frame buffer object. Framebuffer framebuffer = CreateFramebuffer(width, height); this.framebuffer = framebuffer; // Create the DIB section. var dibSection = new DIBSection(); dibSection.Create(this.DeviceContextHandle, width, height, bitDepth); this.dibSection = dibSection; return true; }