We don't have a clean porting guide for adapting Skia to window managers. SampleApp's glue through SkWindow is pretty old and fragmented. It only exists for that test app, and is not officially supported.
However, there is a very clean way to create a Skia drawing context (surface, canvas):
SkImageInfo info = ... // width, height, pixel format, etc.
void* pixels = ... // allocate temporary memory, or point to the window's buffer
size_t rowBytes = ... // must be >= info.minRowBytes()
SkSurface* surface = SkSurface::NewRasterDirect(info, pixels, rowBytes);
SkCanvas* canvas = surface->getCanvas();
... // draw into the canvas
canvas->flush();
// now you can read/copy the pixels to your window
Alternatively, if you have a GL context already create, you can create a surface that will draw directly into that using SkSurface::NewRenderTargetDirect(...)