blob: 59c7956fd597d6573a8f4d63a3492f01265d1789 [file] [log] [blame]
/*
* Copyright 2017 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can
* be found in the LICENSE file.
*
*/
//
//
//
#include <stdlib.h>
#include <assert.h> // FIXME -- replace with an SKC assert for non-debug builds
#include "skc.h"
#include "context.h"
//
// FIXME -- THE RUNTIME AND DEVICE WILL DYNAMICALLY LOADED
//
// temporarily
#include "runtime_cl_12.h"
//
// CONTEXT
//
skc_err
skc_context_create_cl(skc_context_t * context,
cl_context context_cl,
cl_device_id device_id_cl)
{
(*context) = malloc(sizeof(**context));
//
// FIXME -- we'll clean up context creation by platform later. For
// now, just create a CL_12 context.
//
skc_err err;
err = skc_runtime_cl_12_create(*context,context_cl,device_id_cl);
return err;
}
skc_err
skc_context_retain(skc_context_t context)
{
return SKC_ERR_SUCCESS;
}
skc_err
skc_context_release(skc_context_t context)
{
skc_err err = skc_runtime_cl_12_dispose(context);
free(context);
return err;
}
skc_err
skc_context_reset(skc_context_t context)
{
return SKC_ERR_SUCCESS;
}
//
//
//
bool
skc_context_yield(skc_context_t context)
{
return context->yield(context->runtime);
}
void
skc_context_wait(skc_context_t context)
{
context->wait(context->runtime);
}
//
//
//
skc_err
skc_path_builder_create(skc_context_t context, skc_path_builder_t * path_builder)
{
return context->path_builder(context,path_builder);
}
skc_err
skc_path_retain(skc_context_t context, skc_path_t const * paths, uint32_t count)
{
return context->path_retain(context->runtime,paths,count);
}
skc_err
skc_path_release(skc_context_t context, skc_path_t const * paths, uint32_t count)
{
return context->path_release(context->runtime,paths,count);
}
skc_err
skc_path_flush(skc_context_t context, skc_path_t const * paths, uint32_t count)
{
return context->path_flush(context->runtime,paths,count);
}
//
//
//
skc_err
skc_raster_builder_create(skc_context_t context, skc_raster_builder_t * raster_builder)
{
return context->raster_builder(context,raster_builder);
}
skc_err
skc_raster_retain(skc_context_t context, skc_raster_t const * rasters, uint32_t count)
{
return context->raster_retain(context->runtime,rasters,count);
}
skc_err
skc_raster_release(skc_context_t context, skc_raster_t const * rasters, uint32_t count)
{
return context->raster_release(context->runtime,rasters,count);
}
skc_err
skc_raster_flush(skc_context_t context, skc_raster_t const * rasters, uint32_t count)
{
return context->raster_flush(context->runtime,rasters,count);
}
//
//
//
skc_err
skc_styling_create(skc_context_t context,
skc_styling_t * styling,
uint32_t layers_count,
uint32_t groups_count,
uint32_t extras_count)
{
return context->styling(context,
styling,
layers_count,
groups_count,
extras_count);
}
skc_err
skc_composition_create(skc_context_t context, skc_composition_t * composition)
{
return context->composition(context,composition);
}
skc_err
skc_surface_create(skc_context_t context, skc_surface_t * surface)
{
return context->surface(context,surface);
}
//
//
//