void InitializeOpenGL() { ourDisplay = egl.GetDisplay(new EGLNativeDisplayType(IntPtr.Zero)); int major, minor; bool ret = egl.Initialize(ourDisplay, out major, out minor); EGLConfig[] configs = new EGLConfig[10]; int[] attribList = new int[] { egl.EGL_RED_SIZE, 5, egl.EGL_GREEN_SIZE, 6, egl.EGL_BLUE_SIZE, 5, egl.EGL_DEPTH_SIZE, 16 , egl.EGL_SURFACE_TYPE, egl.EGL_WINDOW_BIT, egl.EGL_STENCIL_SIZE, egl.EGL_DONT_CARE, egl.EGL_NONE, egl.EGL_NONE }; int numConfig; if (!egl.ChooseConfig(ourDisplay, attribList, configs, configs.Length, out numConfig) || numConfig < 1) throw new InvalidOperationException("Unable to choose config."); ourConfig = configs[0]; ourContext = egl.CreateContext(ourDisplay, ourConfig, EGLContext.None, null); }
public static extern bool GetConfigAttrib(EGLDisplay dpy, EGLConfig config, int attribute, out int value);
public static extern bool GetConfigs(EGLDisplay dpy, EGLConfig[] configs, int config_size, out int num_config);
public static extern bool Terminate(EGLDisplay dpy);
static extern IntPtr eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, int[] attrib_list);
public static extern bool MakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
public static extern bool SwapInterval(EGLDisplay dpy, int interval);
public static extern bool QuerySurface(EGLDisplay dpy, EGLSurface surface, int attribute, out int value);
public static extern bool ChooseConfig(EGLDisplay dpy, int[] attrib_list, EGLConfig[] configs, int config_size, out int num_config);
public static extern IntPtr QueryString(EGLDisplay dpy, int name);
public static extern bool Initialize(EGLDisplay dpy, out int major, out int minor);
public static EGLSurface CreateWindowSurface(EGLDisplay dpy, EGLConfig config, IntPtr win, int[] attrib_list) { IntPtr ptr = eglCreateWindowSurface(dpy, config, win, attrib_list); EGLSurface ret = new EGLSurface(); ret.Pointer = ptr; return ret; }
public static extern EGLSurface CreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, int[] attrib_list);
static extern IntPtr eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, IntPtr win, int[] attrib_list);
public static extern bool SurfaceAttrib(EGLDisplay dpy, EGLSurface surface, int attribute, int value);
public static EGLContext CreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, int[] attrib_list) { IntPtr ptr = eglCreateContext(dpy, config, share_context, attrib_list); EGLContext ret = new EGLContext(); ret.Pointer = ptr; return ret; }
public static extern bool SwapBuffers(EGLDisplay dpy, EGLSurface surface);
public static extern bool DestroySurface(EGLDisplay dpy, EGLSurface surface);
public static extern EGLSurface CreatePbufferFromClientBuffer(EGLDisplay dpy, int buftype, EGLClientBuffer buffer, EGLConfig config, int[] attrib_list);
public static extern bool ReleaseTexImage(EGLDisplay dpy, EGLSurface surface, int buffer);
public static extern EGLSurface CreatePbufferSurface(EGLDisplay dpy, EGLConfig config, int[] attrib_list);
static extern IntPtr eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, int[] attrib_list);
public static extern bool DestroyContext(EGLDisplay dpy, EGLContext ctx);
public static extern bool QueryContext(EGLDisplay dpy, EGLContext ctx, int attribute, out int value);
public static extern bool CopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
public static EGLDisplay GetDisplay(EGLNativeDisplayType display_id) { IntPtr ptr = eglGetDisplay(display_id); EGLDisplay ret = new EGLDisplay(); ret.Pointer = ptr; return ret; }