From 4911e382206b6b7b732c42b04f5c6d49c8e81727 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Fri, 2 Sep 2016 04:04:54 +0200 Subject: [PATCH] Revert "GPU Support" --- gyp/core.gyp | 1 - gyp/core.gypi | 2 -- include/c/gr_context.h | 40 ----------------------- include/c/sk_canvas.h | 7 ---- include/c/sk_surface.h | 31 ++---------------- include/c/sk_types.h | 89 -------------------------------------------------- src/c/gr_context.cpp | 87 ------------------------------------------------ src/c/sk_canvas.cpp | 4 --- src/c/sk_enums.cpp | 40 ----------------------- src/c/sk_surface.cpp | 63 ++++++++--------------------------- src/c/sk_types_priv.h | 50 ---------------------------- 11 files changed, 17 insertions(+), 397 deletions(-) delete mode 100644 include/c/gr_context.h delete mode 100644 src/c/gr_context.cpp diff --git a/gyp/core.gyp b/gyp/core.gyp index 5528a91..b03e1c3 100644 --- a/gyp/core.gyp +++ b/gyp/core.gyp @@ -27,7 +27,6 @@ '../include/private', '../include/utils', '../include/images', - '../include/gpu', '../src/core', '../src/sfnt', '../src/image', diff --git a/gyp/core.gypi b/gyp/core.gypi index f6db6a6..08c5ad6 100644 --- a/gyp/core.gypi +++ b/gyp/core.gypi @@ -32,7 +32,6 @@ '<(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', @@ -55,7 +54,6 @@ '<(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', diff --git a/include/c/gr_context.h b/include/c/gr_context.h deleted file mode 100644 index 3e7840f..0000000 --- a/include/c/gr_context.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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 diff --git a/include/c/sk_canvas.h b/include/c/sk_canvas.h index 788418f..bef4660 100644 --- a/include/c/sk_canvas.h +++ b/include/c/sk_canvas.h @@ -328,13 +328,6 @@ SK_API bool sk_canvas_get_clip_bounds(sk_canvas_t* t, sk_rect_t* cbounds); */ 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 diff --git a/include/c/sk_surface.h b/include/c/sk_surface.h index 6d78ec1..3d6034a 100644 --- a/include/c/sk_surface.h +++ b/include/c/sk_surface.h @@ -50,7 +50,9 @@ SK_API sk_surface_t* sk_surface_new_raster(const sk_imageinfo_t*, const sk_surfa @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 @@ -71,33 +73,6 @@ SK_API sk_canvas_t* sk_surface_get_canvas(sk_surface_t*); */ 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 diff --git a/include/c/sk_types.h b/include/c/sk_types.h index 6458f6b..0e0f992 100644 --- a/include/c/sk_types.h +++ b/include/c/sk_types.h @@ -79,16 +79,8 @@ typedef struct { 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 { @@ -527,87 +519,6 @@ typedef struct sk_colortable_t sk_colortable_t; 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 diff --git a/src/c/gr_context.cpp b/src/c/gr_context.cpp deleted file mode 100644 index 6c2c3ea..0000000 --- a/src/c/gr_context.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - * 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); -} diff --git a/src/c/sk_canvas.cpp b/src/c/sk_canvas.cpp index e6d363e..5fc9a98 100644 --- a/src/c/sk_canvas.cpp +++ b/src/c/sk_canvas.cpp @@ -226,10 +226,6 @@ void sk_canvas_draw_picture(sk_canvas_t* ccanvas, const sk_picture_t* cpicture, 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))); } diff --git a/src/c/sk_enums.cpp b/src/c/sk_enums.cpp index a44a50d..9ecd342 100644 --- a/src/c/sk_enums.cpp +++ b/src/c/sk_enums.cpp @@ -253,44 +253,4 @@ static_assert ((int)SkCanvas::PointMode::kPoints_PointMode == (int)POINTS_SK_ 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 diff --git a/src/c/sk_surface.cpp b/src/c/sk_surface.cpp index 71cfc53..a79705b 100644 --- a/src/c/sk_surface.cpp +++ b/src/c/sk_surface.cpp @@ -29,68 +29,33 @@ sk_colortype_t sk_colortype_get_default_8888() { 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(); } diff --git a/src/c/sk_types_priv.h b/src/c/sk_types_priv.h index e77e809..9453087 100644 --- a/src/c/sk_types_priv.h +++ b/src/c/sk_types_priv.h @@ -24,8 +24,6 @@ #include "SkMatrixConvolutionImageFilter.h" #include "Sk1DPathEffect.h" #include "SkFontStyle.h" -#include "GrContext.h" -#include "gl/GrGLInterface.h" #include "sk_path.h" #include "sk_paint.h" @@ -442,50 +440,6 @@ static inline const sk_pixelref_factory_t* ToColorTable(const SkPixelRefFactory* return reinterpret_cast(p); } -static inline sk_surface_t* ToSurface(SkSurface* p) { - return reinterpret_cast(p); -} - -static inline SkSurface* AsSurface(sk_surface_t* p) { - return reinterpret_cast(p); -} - -static inline gr_context_t* ToGrContext(GrContext* p) { - return reinterpret_cast(p); -} - -static inline GrContext* AsGrContext(gr_context_t* p) { - return reinterpret_cast(p); -} -static inline const GrContextOptions& AsGrContextOptions(const gr_context_options_t& p) { - return reinterpret_cast(p); -} - -static inline const GrBackendRenderTargetDesc& AsGrBackendRenderTargetDesc(const gr_backend_rendertarget_desc_t& p) { - return reinterpret_cast(p); -} - -static inline const GrBackendTextureDesc& AsGrBackendTextureDesc(const gr_backend_texture_desc_t& p) { - return reinterpret_cast(p); -} - - -static inline gr_glinterface_t* ToGrGLInterface(GrGLInterface* p) { - return reinterpret_cast(p); -} - -static inline GrGLInterface* AsGrGLInterface(gr_glinterface_t* p) { - return reinterpret_cast(p); -} - -static inline const gr_glinterface_t* ToGrGLInterface(const GrGLInterface* p) { - return reinterpret_cast(p); -} - -static inline const GrGLInterface* AsGrGLInterface(const gr_glinterface_t* p) { - return reinterpret_cast(p); -} - static inline void from_c(const sk_matrix_t* cmatrix, SkMatrix* matrix) { matrix->setAll( cmatrix->mat[0], cmatrix->mat[1], cmatrix->mat[2], @@ -531,8 +485,4 @@ static inline bool from_sk(const SkImageInfo& info, sk_imageinfo_t* cinfo) { return true; } -static inline void from_c(const sk_surfaceprops_t* cprops, SkSurfaceProps* props) { - *props = SkSurfaceProps(cprops->flags, (SkPixelGeometry)cprops->pixelGeometry); -} - #endif -- 2.7.4