'../include/private',
'../include/utils',
'../include/images',
- '../include/gpu',
'../src/core',
'../src/sfnt',
'../src/image',
'<(skia_include_path)/c/sk_surface.h',
'<(skia_include_path)/c/sk_typeface.h',
'<(skia_include_path)/c/sk_types.h',
- '<(skia_include_path)/c/gr_context.h',
'<(skia_src_path)/c/sk_bitmap.cpp',
'<(skia_src_path)/c/sk_canvas.cpp',
'<(skia_src_path)/c/sk_codec.cpp',
'<(skia_src_path)/c/sk_surface.cpp',
'<(skia_src_path)/c/sk_typeface.cpp',
'<(skia_src_path)/c/sk_types_priv.h',
- '<(skia_src_path)/c/gr_context.cpp',
'<(skia_src_path)/core/Sk4px.h',
'<(skia_src_path)/core/SkAAClip.cpp',
+++ /dev/null
-/*
- * Copyright 2016 Xamarin Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-// EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL
-// DO NOT USE -- FOR INTERNAL TESTING ONLY
-
-#ifndef gr_context_DEFINED
-#define gr_context_DEFINED
-
-#include "sk_types.h"
-
-SK_C_PLUS_PLUS_BEGIN_GUARD
-
-SK_API gr_context_t* gr_context_create(gr_backend_t backend, gr_backendcontext_t backendContext, const gr_context_options_t* options);
-SK_API gr_context_t* gr_context_create_with_defaults(gr_backend_t backend, gr_backendcontext_t backendContext);
-SK_API void gr_context_unref(gr_context_t* context);
-SK_API void gr_context_abandon_context(gr_context_t* context);
-SK_API void gr_context_release_resources_and_abandon_context(gr_context_t* context);
-SK_API void gr_context_get_resource_cache_limits(gr_context_t* context, int* maxResources, size_t* maxResourceBytes);
-SK_API void gr_context_set_resource_cache_limits(gr_context_t* context, int maxResources, size_t maxResourceBytes);
-SK_API void gr_context_get_resource_cache_usage(gr_context_t* context, int* maxResources, size_t* maxResourceBytes);
-SK_API int gr_context_get_recommended_sample_count(gr_context_t* context, gr_pixelconfig_t config, float dpi);
-
-SK_API const gr_glinterface_t* gr_glinterface_default_interface();
-SK_API const gr_glinterface_t* gr_glinterface_create_native_interface();
-SK_API const gr_glinterface_t* gr_glinterface_assemble_interface(void* ctx, gr_gl_get_proc get);
-SK_API const gr_glinterface_t* gr_glinterface_assemble_gl_interface(void* ctx, gr_gl_get_proc get);
-SK_API const gr_glinterface_t* gr_glinterface_assemble_gles_interface(void* ctx, gr_gl_get_proc get);
-SK_API void gr_glinterface_unref(gr_glinterface_t* glInterface);
-SK_API gr_glinterface_t* gr_glinterface_clone(gr_glinterface_t* glInterface);
-SK_API bool gr_glinterface_validate(gr_glinterface_t* glInterface);
-SK_API bool gr_glinterface_has_extension(gr_glinterface_t* glInterface, const char* extension);
-
-SK_C_PLUS_PLUS_END_GUARD
-
-#endif
*/
SK_API bool sk_canvas_get_clip_device_bounds(sk_canvas_t* t, sk_irect_t* cbounds);
-/**
- Trigger the immediate execution of all pending draw operations. For the GPU
- backend this will resolve all rendering to the GPU surface backing the
- SkSurface that owns this canvas.
-*/
-SK_API void sk_canvas_flush(sk_canvas_t* ccanvas);
-
SK_API sk_canvas_t* sk_canvas_new_from_bitmap(const sk_bitmap_t* bitmap);
SK_C_PLUS_PLUS_END_GUARD
@param sk_surfaceprops_t* If not NULL, specify additional non-default
properties of the surface.
*/
-SK_API sk_surface_t* sk_surface_new_raster_direct(const sk_imageinfo_t*, void* pixels, size_t rowBytes, const sk_surfaceprops_t* props);
+SK_API sk_surface_t* sk_surface_new_raster_direct(const sk_imageinfo_t*,
+ void* pixels, size_t rowBytes,
+ const sk_surfaceprops_t* props);
/**
Decrement the reference count. If the reference count is 1 before
*/
SK_API sk_image_t* sk_surface_new_image_snapshot(sk_surface_t*);
-/**
- * Used to wrap a pre-existing 3D API rendering target as a SkSurface. Skia will not assume
- * ownership of the render target and the client must ensure the render target is valid for the
- * lifetime of the SkSurface.
- */
-SK_API sk_surface_t* sk_surface_new_backend_render_target(gr_context_t* context, const gr_backend_rendertarget_desc_t* desc, const sk_surfaceprops_t* props);
-
-/**
- * Used to wrap a pre-existing backend 3D API texture as a SkSurface. The kRenderTarget flag
- * must be set on GrBackendTextureDesc for this to succeed. Skia will not assume ownership
- * of the texture and the client must ensure the texture is valid for the lifetime of the
- * SkSurface.
- */
-SK_API sk_surface_t* sk_surface_new_backend_texture(gr_context_t* context, const gr_backend_texture_desc_t* desc, const sk_surfaceprops_t* props);
-
-/**
- * Used to wrap a pre-existing 3D API texture as a SkSurface. Skia will treat the texture as
- * a rendering target only, but unlike NewFromBackendRenderTarget, Skia will manage and own
- * the associated render target objects (but not the provided texture). The kRenderTarget flag
- * must be set on GrBackendTextureDesc for this to succeed. Skia will not assume ownership
- * of the texture and the client must ensure the texture is valid for the lifetime of the
- * SkSurface.
- */
-SK_API sk_surface_t* sk_surface_new_backend_texture_as_render_target(gr_context_t* context, const gr_backend_texture_desc_t* desc, const sk_surfaceprops_t* props);
-
-SK_API sk_surface_t* sk_surface_new_render_target(gr_context_t* context, bool budgeted, const sk_imageinfo_t* info, int sampleCount, const sk_surfaceprops_t* props);
-
SK_C_PLUS_PLUS_END_GUARD
#endif
sk_alphatype_t alphaType;
} sk_imageinfo_t;
-typedef enum {
- DISALLOW_ANTIALIAS_GR_SURFACE_PROPS_FLAGS = 1 << 0,
- DISALLOW_DITHER_GR_SURFACE_PROPS_FLAGS = 1 << 1,
- USE_DEVICE_INDEPENDENT_FONTS_GR_SURFACE_PROPS_FLAGS = 1 << 2,
- GAMMA_CORRECT_GR_SURFACE_PROPS_FLAGS = 1 << 3,
-} sk_surfaceprops_flags_t;
-
typedef struct {
sk_pixelgeometry_t pixelGeometry;
- sk_surfaceprops_flags_t flags;
} sk_surfaceprops_t;
typedef struct {
typedef struct sk_pixelref_factory_t sk_pixelref_factory_t;
-typedef enum {
- TOP_LEFT_GR_SURFACE_ORIGIN = 1,
- BOTTOM_LEFT_GR_SURFACE_ORIGIN,
-} gr_surfaceorigin_t;
-
-typedef enum {
- UNKNOWN_GR_PIXEL_CONFIG,
- ALPHA_8_GR_PIXEL_CONFIG,
- INDEX_8_GR_PIXEL_CONFIG,
- RGB_565_GR_PIXEL_CONFIG,
- RGBA_4444_GR_PIXEL_CONFIG,
- RGBA_8888_GR_PIXEL_CONFIG,
- BGRA_8888_GR_PIXEL_CONFIG,
- SRGBA_8888_GR_PIXEL_CONFIG,
- SBGRA_8888_GR_PIXEL_CONFIG,
- ETC1_GR_PIXEL_CONFIG,
- LATC_GR_PIXEL_CONFIG,
- R11_EAC_GR_PIXEL_CONFIG,
- ASTC_12X12_GR_PIXEL_CONFIG,
- RGBA_FLOAT_GR_PIXEL_CONFIG,
- ALPHA_HALF_GR_PIXEL_CONFIG,
- RGBA_HALF_GR_PIXEL_CONFIG,
-} gr_pixelconfig_t;
-
-typedef intptr_t gr_backendobject_t;
-
-typedef struct {
- int fWidth;
- int fHeight;
- gr_pixelconfig_t fConfig;
- gr_surfaceorigin_t fOrigin;
- int fSampleCnt;
- int fStencilBits;
- gr_backendobject_t fRenderTargetHandle;
-} gr_backend_rendertarget_desc_t;
-
-typedef enum {
- NONE_GR_BACKEND_TEXTURE_FLAGS = 0,
- RENDER_TARGET_GR_BACKEND_TEXTURE_FLAGS = 1,
-} gr_backendtexture_flags_t;
-
-typedef struct {
- gr_backendtexture_flags_t fFlags;
- gr_surfaceorigin_t fOrigin;
- int fWidth;
- int fHeight;
- gr_pixelconfig_t fConfig;
- int fSampleCnt;
- gr_backendobject_t fTextureHandle;
-} gr_backend_texture_desc_t;
-
-typedef struct gr_context_t gr_context_t;
-
-typedef struct {
- bool fSuppressPrints;
- int fMaxTextureSizeOverride;
- int fMaxTileSizeOverride;
- bool fSuppressDualSourceBlending;
- int fBufferMapThreshold;
- bool fUseDrawInsteadOfPartialRenderTargetWrite;
- bool fImmediateMode;
- bool fClipBatchToBounds;
- bool fDrawBatchBounds;
- int fMaxBatchLookback;
- int fMaxBatchLookahead;
- bool fUseShaderSwizzling;
- bool fDoManualMipmapping;
-} gr_context_options_t;
-
-typedef enum {
- OPENGL_GR_BACKEND,
- VULKAN_GR_BACKEND,
-} gr_backend_t;
-
-typedef intptr_t gr_backendcontext_t;
-
-typedef struct gr_glinterface_t gr_glinterface_t;
-
-typedef void (*gr_gl_func_ptr)();
-typedef gr_gl_func_ptr (*gr_gl_get_proc)(void* ctx, const char* name);
-
SK_C_PLUS_PLUS_END_GUARD
#endif
+++ /dev/null
-/*
- * Copyright 2016 Xamarin Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "GrContext.h"
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLAssembleInterface.h"
-
-#include "gr_context.h"
-
-#include "sk_types_priv.h"
-
-gr_context_t* gr_context_create(gr_backend_t backend, gr_backendcontext_t backendContext, const gr_context_options_t* options) {
- return ToGrContext(GrContext::Create((GrBackend)backend, backendContext, AsGrContextOptions(*options)));
-}
-
-gr_context_t* gr_context_create_with_defaults(gr_backend_t backend, gr_backendcontext_t backendContext) {
- return ToGrContext(GrContext::Create((GrBackend)backend, backendContext));
-}
-
-void gr_context_unref(gr_context_t* context) {
- AsGrContext(context)->unref();
-}
-
-void gr_context_abandon_context(gr_context_t* context) {
- AsGrContext(context)->abandonContext();
-}
-
-void gr_context_release_resources_and_abandon_context(gr_context_t* context) {
- AsGrContext(context)->releaseResourcesAndAbandonContext();
-}
-
-void gr_context_get_resource_cache_limits(gr_context_t* context, int* maxResources, size_t* maxResourceBytes) {
- AsGrContext(context)->getResourceCacheLimits(maxResources, maxResourceBytes);
-}
-
-void gr_context_set_resource_cache_limits(gr_context_t* context, int maxResources, size_t maxResourceBytes) {
- AsGrContext(context)->setResourceCacheLimits(maxResources, maxResourceBytes);
-}
-
-void gr_context_get_resource_cache_usage(gr_context_t* context, int* maxResources, size_t* maxResourceBytes) {
- AsGrContext(context)->getResourceCacheUsage(maxResources, maxResourceBytes);
-}
-
-int gr_context_get_recommended_sample_count(gr_context_t* context, gr_pixelconfig_t config, float dpi) {
- return AsGrContext(context)->getRecommendedSampleCount((GrPixelConfig)config, dpi);
-}
-
-
-const gr_glinterface_t* gr_glinterface_default_interface() {
- return ToGrGLInterface(GrGLDefaultInterface());
-}
-
-const gr_glinterface_t* gr_glinterface_create_native_interface() {
- return ToGrGLInterface(GrGLCreateNativeInterface());
-}
-
-const gr_glinterface_t* gr_glinterface_assemble_interface(void* ctx, gr_gl_get_proc get) {
- return ToGrGLInterface(GrGLAssembleInterface(ctx, get));
-}
-
-const gr_glinterface_t* gr_glinterface_assemble_gl_interface(void* ctx, gr_gl_get_proc get) {
- return ToGrGLInterface(GrGLAssembleGLInterface(ctx, get));
-}
-
-const gr_glinterface_t* gr_glinterface_assemble_gles_interface(void* ctx, gr_gl_get_proc get) {
- return ToGrGLInterface(GrGLAssembleGLESInterface(ctx, get));
-}
-
-void gr_glinterface_unref(gr_glinterface_t* glInterface) {
- AsGrGLInterface(glInterface)->unref();
-}
-
-gr_glinterface_t* gr_glinterface_clone(gr_glinterface_t* glInterface) {
- return ToGrGLInterface(GrGLInterface::NewClone(AsGrGLInterface(glInterface)));
-}
-
-bool gr_glinterface_validate(gr_glinterface_t* glInterface) {
- return AsGrGLInterface(glInterface)->validate();
-}
-
-bool gr_glinterface_has_extension(gr_glinterface_t* glInterface, const char* extension) {
- return AsGrGLInterface(glInterface)->hasExtension(extension);
-}
AsCanvas(ccanvas)->drawPicture(AsPicture(cpicture), matrixPtr, AsPaint(cpaint));
}
-void sk_canvas_flush(sk_canvas_t* ccanvas) {
- AsCanvas(ccanvas)->flush();
-}
-
sk_canvas_t* sk_canvas_new_from_bitmap(const sk_bitmap_t* bitmap) {
return ToCanvas(new SkCanvas(AsBitmap(*bitmap)));
}
static_assert ((int)SkCanvas::PointMode::kLines_PointMode == (int)LINES_SK_POINT_MODE, ASSERT_MSG(SkCanvas::PointMode, sk_point_mode_t));
static_assert ((int)SkCanvas::PointMode::kPolygon_PointMode == (int)POLYGON_SK_POINT_MODE, ASSERT_MSG(SkCanvas::PointMode, sk_point_mode_t));
-// sk_surfaceprops_flags_t
-static_assert ((int)SkSurfaceProps::Flags::kDisallowAntiAlias_Flag == (int)DISALLOW_ANTIALIAS_GR_SURFACE_PROPS_FLAGS, ASSERT_MSG(SkSurfaceProps::Flags, sk_surfaceprops_flags_t));
-static_assert ((int)SkSurfaceProps::Flags::kDisallowDither_Flag == (int)DISALLOW_DITHER_GR_SURFACE_PROPS_FLAGS, ASSERT_MSG(SkSurfaceProps::Flags, sk_surfaceprops_flags_t));
-static_assert ((int)SkSurfaceProps::Flags::kGammaCorrect_Flag == (int)GAMMA_CORRECT_GR_SURFACE_PROPS_FLAGS, ASSERT_MSG(SkSurfaceProps::Flags, sk_surfaceprops_flags_t));
-static_assert ((int)SkSurfaceProps::Flags::kUseDeviceIndependentFonts_Flag == (int)USE_DEVICE_INDEPENDENT_FONTS_GR_SURFACE_PROPS_FLAGS, ASSERT_MSG(SkSurfaceProps::Flags, sk_surfaceprops_flags_t));
-
-// gr_surfaceorigin_t
-static_assert ((int)GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin == (int)BOTTOM_LEFT_GR_SURFACE_ORIGIN, ASSERT_MSG(GrSurfaceOrigin, gr_surfaceorigin_t));
-static_assert ((int)GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin == (int)TOP_LEFT_GR_SURFACE_ORIGIN, ASSERT_MSG(GrSurfaceOrigin, gr_surfaceorigin_t));
-
-// gr_pixelconfig_t
-static_assert ((int)GrPixelConfig::kUnknown_GrPixelConfig == (int)UNKNOWN_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kAlpha_8_GrPixelConfig == (int)ALPHA_8_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kIndex_8_GrPixelConfig == (int)INDEX_8_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGB_565_GrPixelConfig == (int)RGB_565_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGBA_4444_GrPixelConfig == (int)RGBA_4444_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGBA_8888_GrPixelConfig == (int)RGBA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kBGRA_8888_GrPixelConfig == (int)BGRA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kSRGBA_8888_GrPixelConfig == (int)SRGBA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kSBGRA_8888_GrPixelConfig == (int)SBGRA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kETC1_GrPixelConfig == (int)ETC1_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kLATC_GrPixelConfig == (int)LATC_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kR11_EAC_GrPixelConfig == (int)R11_EAC_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kASTC_12x12_GrPixelConfig == (int)ASTC_12X12_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGBA_float_GrPixelConfig == (int)RGBA_FLOAT_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kAlpha_half_GrPixelConfig == (int)ALPHA_HALF_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGBA_half_GrPixelConfig == (int)RGBA_HALF_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-
-// gr_backendtexture_flags_t
-static_assert ((int)GrBackendTextureFlags::kNone_GrBackendTextureFlag == (int)NONE_GR_BACKEND_TEXTURE_FLAGS, ASSERT_MSG(GrBackendTextureFlags, gr_backendtexture_flags_t));
-static_assert ((int)GrBackendTextureFlags::kRenderTarget_GrBackendTextureFlag == (int)RENDER_TARGET_GR_BACKEND_TEXTURE_FLAGS, ASSERT_MSG(GrBackendTextureFlags, gr_backendtexture_flags_t));
-
-// gr_backend_t
-static_assert ((int)GrBackend::kOpenGL_GrBackend == (int)OPENGL_GR_BACKEND, ASSERT_MSG(GrBackendTextureFlags, gr_backend_t));
-static_assert ((int)GrBackend::kVulkan_GrBackend == (int)VULKAN_GR_BACKEND, ASSERT_MSG(GrBackendTextureFlags, gr_backend_t));
-
-// SkBudgeted
-static_assert ((bool)SkBudgeted::kNo == (bool)false, ASSERT_MSG(SkBudgeted, bool));
-static_assert ((bool)SkBudgeted::kYes == (bool)true, ASSERT_MSG(SkBudgeted, bool));
-
#endif
return (sk_colortype_t)SkColorType::kN32_SkColorType;
}
-sk_surface_t* sk_surface_new_raster(const sk_imageinfo_t* cinfo, const sk_surfaceprops_t* props) {
+sk_surface_t* sk_surface_new_raster(const sk_imageinfo_t* cinfo,
+ const sk_surfaceprops_t* props) {
SkImageInfo info;
from_c(*cinfo, &info);
- SkSurfaceProps* surfProps = nullptr;
- if (props) {
- from_c(props, surfProps);
- }
- return ToSurface(SkSurface::MakeRaster(info, surfProps).release());
+ SkSurfaceProps surfProps(0, props ? (SkPixelGeometry)props->pixelGeometry : SkPixelGeometry::kUnknown_SkPixelGeometry);
+ return (sk_surface_t*)SkSurface::MakeRaster(info, &surfProps).release();
}
-sk_surface_t* sk_surface_new_raster_direct(const sk_imageinfo_t* cinfo, void* pixels, size_t rowBytes, const sk_surfaceprops_t* props) {
+sk_surface_t* sk_surface_new_raster_direct(const sk_imageinfo_t* cinfo, void* pixels,
+ size_t rowBytes,
+ const sk_surfaceprops_t* props) {
SkImageInfo info;
from_c(*cinfo, &info);
- SkSurfaceProps* surfProps = nullptr;
- if (props) {
- from_c(props, surfProps);
- }
- return ToSurface(SkSurface::MakeRasterDirect(info, pixels, rowBytes, surfProps).release());
+ SkSurfaceProps surfProps(0, props ? (SkPixelGeometry)props->pixelGeometry : SkPixelGeometry::kUnknown_SkPixelGeometry);
+ return (sk_surface_t*)SkSurface::MakeRasterDirect(info, pixels, rowBytes, &surfProps).release();
}
void sk_surface_unref(sk_surface_t* csurf) {
- SkSafeUnref(AsSurface(csurf));
+ SkSafeUnref((SkSurface*)csurf);
}
sk_canvas_t* sk_surface_get_canvas(sk_surface_t* csurf) {
- return ToCanvas(AsSurface(csurf)->getCanvas());
+ SkSurface* surf = (SkSurface*)csurf;
+ return (sk_canvas_t*)surf->getCanvas();
}
sk_image_t* sk_surface_new_image_snapshot(sk_surface_t* csurf) {
- return ToImage(AsSurface(csurf)->makeImageSnapshot().release());
-}
-
-sk_surface_t* sk_surface_new_backend_render_target(gr_context_t* context, const gr_backend_rendertarget_desc_t* desc, const sk_surfaceprops_t* props) {
- SkSurfaceProps* surfProps = nullptr;
- if (props) {
- from_c(props, surfProps);
- }
- return ToSurface(SkSurface::MakeFromBackendRenderTarget(AsGrContext(context), AsGrBackendRenderTargetDesc(*desc), surfProps).release());
-}
-
-sk_surface_t* sk_surface_new_backend_texture(gr_context_t* context, const gr_backend_texture_desc_t* desc, const sk_surfaceprops_t* props) {
- SkSurfaceProps* surfProps = nullptr;
- if (props) {
- from_c(props, surfProps);
- }
- return ToSurface(SkSurface::MakeFromBackendTexture(AsGrContext(context), AsGrBackendTextureDesc(*desc), surfProps).release());
-}
-
-sk_surface_t* sk_surface_new_backend_texture_as_render_target(gr_context_t* context, const gr_backend_texture_desc_t* desc, const sk_surfaceprops_t* props) {
- SkSurfaceProps* surfProps = nullptr;
- if (props) {
- from_c(props, surfProps);
- }
- return ToSurface(SkSurface::MakeFromBackendTextureAsRenderTarget(AsGrContext(context), AsGrBackendTextureDesc(*desc), surfProps).release());
-}
-
-sk_surface_t* sk_surface_new_render_target(gr_context_t* context, bool budgeted, const sk_imageinfo_t* cinfo, int sampleCount, const sk_surfaceprops_t* props) {
- SkImageInfo info;
- from_c(*cinfo, &info);
- SkSurfaceProps* surfProps = nullptr;
- if (props) {
- from_c(props, surfProps);
- }
- return ToSurface(SkSurface::MakeRenderTarget(AsGrContext(context), (SkBudgeted)budgeted, info, sampleCount, surfProps).release());
+ SkSurface* surf = (SkSurface*)csurf;
+ return (sk_image_t*)surf->makeImageSnapshot().release();
}
#include "SkMatrixConvolutionImageFilter.h"
#include "Sk1DPathEffect.h"
#include "SkFontStyle.h"
-#include "GrContext.h"
-#include "gl/GrGLInterface.h"
#include "sk_path.h"
#include "sk_paint.h"
return reinterpret_cast<const sk_pixelref_factory_t*>(p);
}
-static inline sk_surface_t* ToSurface(SkSurface* p) {
- return reinterpret_cast<sk_surface_t*>(p);
-}
-
-static inline SkSurface* AsSurface(sk_surface_t* p) {
- return reinterpret_cast<SkSurface*>(p);
-}
-
-static inline gr_context_t* ToGrContext(GrContext* p) {
- return reinterpret_cast<gr_context_t*>(p);
-}
-
-static inline GrContext* AsGrContext(gr_context_t* p) {
- return reinterpret_cast<GrContext*>(p);
-}
-static inline const GrContextOptions& AsGrContextOptions(const gr_context_options_t& p) {
- return reinterpret_cast<const GrContextOptions&>(p);
-}
-
-static inline const GrBackendRenderTargetDesc& AsGrBackendRenderTargetDesc(const gr_backend_rendertarget_desc_t& p) {
- return reinterpret_cast<const GrBackendRenderTargetDesc&>(p);
-}
-
-static inline const GrBackendTextureDesc& AsGrBackendTextureDesc(const gr_backend_texture_desc_t& p) {
- return reinterpret_cast<const GrBackendTextureDesc&>(p);
-}
-
-
-static inline gr_glinterface_t* ToGrGLInterface(GrGLInterface* p) {
- return reinterpret_cast<gr_glinterface_t*>(p);
-}
-
-static inline GrGLInterface* AsGrGLInterface(gr_glinterface_t* p) {
- return reinterpret_cast<GrGLInterface*>(p);
-}
-
-static inline const gr_glinterface_t* ToGrGLInterface(const GrGLInterface* p) {
- return reinterpret_cast<const gr_glinterface_t*>(p);
-}
-
-static inline const GrGLInterface* AsGrGLInterface(const gr_glinterface_t* p) {
- return reinterpret_cast<const GrGLInterface*>(p);
-}
-
static inline void from_c(const sk_matrix_t* cmatrix, SkMatrix* matrix) {
matrix->setAll(
cmatrix->mat[0], cmatrix->mat[1], cmatrix->mat[2],
return true;
}
-static inline void from_c(const sk_surfaceprops_t* cprops, SkSurfaceProps* props) {
- *props = SkSurfaceProps(cprops->flags, (SkPixelGeometry)cprops->pixelGeometry);
-}
-
#endif