/*
|
* Copyright 2017 Google Inc.
|
*
|
* Use of this source code is governed by a BSD-style license that can
|
* be found in the LICENSE file.
|
*
|
*/
|
|
#pragma once
|
|
//
|
//
|
//
|
|
#include "skc.h"
|
#include "types.h"
|
|
//
|
// FIXME -- relax the const correctness
|
//
|
|
struct skc_context
|
{
|
struct skc_runtime * runtime;
|
|
//
|
//
|
//
|
|
bool (* yield )(struct skc_runtime * const runtime);
|
|
void (* wait )(struct skc_runtime * const runtime);
|
|
//
|
//
|
//
|
|
skc_err (* path_builder )(struct skc_context * const context,
|
skc_path_builder_t * const path_builder);
|
|
skc_err (* path_retain )(struct skc_runtime * const runtime,
|
skc_path_t const * paths,
|
uint32_t count);
|
|
skc_err (* path_release )(struct skc_runtime * const runtime,
|
skc_path_t const * paths,
|
uint32_t count);
|
|
skc_err (* path_flush )(struct skc_runtime * const runtime,
|
skc_path_t const * paths,
|
uint32_t count);
|
|
//
|
//
|
//
|
|
skc_err (* raster_builder )(struct skc_context * const context,
|
skc_raster_builder_t * const raster_builder);
|
|
skc_err (* raster_retain )(struct skc_runtime * const runtime,
|
skc_raster_t const * rasters,
|
uint32_t count);
|
|
skc_err (* raster_release )(struct skc_runtime * const runtime,
|
skc_raster_t const * rasters,
|
uint32_t count);
|
|
skc_err (* raster_flush )(struct skc_runtime * const runtime,
|
skc_raster_t const * rasters,
|
uint32_t count);
|
//
|
//
|
//
|
|
skc_err (* composition )(struct skc_context * const context,
|
skc_composition_t * const composition);
|
|
//
|
//
|
//
|
|
skc_err (* styling )(struct skc_context * const context,
|
skc_styling_t * const styling,
|
uint32_t const layers_count,
|
uint32_t const groups_count,
|
uint32_t const extras_count);
|
|
//
|
//
|
//
|
|
skc_err (* surface )(struct skc_context * const context,
|
skc_surface_t * const surface);
|
//
|
//
|
//
|
|
skc_int refcount;
|
};
|
|
//
|
//
|
//
|