AO46: EGL Window Surfaces + Public Cocoa Presentation
Small but important frontend update: the standard Khronos path now supports real EGL_WINDOW_BIT surfaces, not just pbuffers.
A normal app can now pass a public CAMetalLayer, NSView, or NSWindow into eglCreateWindowSurface(). Mesa still owns EGL/OpenGL and the state tracker; AO46 only handles the public Cocoa/Metal drawable lifecycle underneath. No CGL, no NSOpenGL, no legacy AO46 runtime sneaking back in through a side door.
The Metal backend now acquires the Cocoa layer, maps the live Gallium color resource to its Metal texture, copies into the current CAMetalDrawable, presents it, and keeps the source alive until GPU completion. It also handles backing-size changes, drawable loss, sRGB RGBA8/BGRA8, and swap intervals 0/1.
The ao46mtl EGL driver now advertises both:
EGL_PBUFFER_BIT | EGL_WINDOW_BIT
and handles front/depth resource allocation, refresh on Cocoa layer changes, and presentation through eglSwapBuffers().
I also moved the shared Metal/Gallium screen, NIR, RGB32 and poly support into AO46MTLGallium, so the modern frontend no longer quietly depends on the old CGL-side runtime bundle.
This thus completes the seperate modern Standard Khronos EGL + OGL ABI frontend in parallel to the legacy NSOpenGL + CGL + OpenGL Framework path , which is kept in parallel for Apple only compatibility [ie Apps that have a Cocoa + AppKit frontend and requires the .framework ]