How do I nicely wrap a C library (SDL)?

Oh, right. Is there a conventional technique for wrapping these objects? I realize that's what I originally set out to do. Maybe I'll just do that from scratch. @Joe_Groff above suggests wrapping the objects in a struct, but wouldn't that break some of the semantic differences between structs and classes?

Too bad you can’t just augment an imported C object with

extension SDL_Window : ReferenceCounted
{
    init() { ... = SDL_CreateWindow() }
    deinit { SDL_DestroyWindow(...) }
}

I’ll see if I can craft an appropriate post for Swift Evolution.