Expose the `flush` method for `GrContext`
authorMatthew Leibowitz <mattleibow@live.com>
Tue, 6 Sep 2016 17:16:36 +0000 (19:16 +0200)
committerMatthew Leibowitz <mattleibow@live.com>
Tue, 6 Sep 2016 17:16:36 +0000 (19:16 +0200)
include/c/gr_context.h
include/c/sk_types.h
src/c/gr_context.cpp
src/c/sk_enums.cpp

index 3e7840f..57d0eac 100644 (file)
@@ -24,6 +24,7 @@ SK_API void gr_context_get_resource_cache_limits(gr_context_t* context, int* max
 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 void gr_context_flush(gr_context_t* context, gr_context_flushbits_t flags);
 
 SK_API const gr_glinterface_t* gr_glinterface_default_interface();
 SK_API const gr_glinterface_t* gr_glinterface_create_native_interface();
index 3e58075..2bfa770 100644 (file)
@@ -560,6 +560,11 @@ typedef enum {
     RGBA_HALF_GR_PIXEL_CONFIG,
 } gr_pixelconfig_t;
 
+typedef enum {
+    NONE_GR_CONTEXT_FLUSHBITS = 0,
+    DISCARD_GR_CONTEXT_FLUSHBITS = 0x2,
+} gr_context_flushbits_t;
+
 typedef intptr_t gr_backendobject_t;
 
 typedef struct {
index 6c2c3ea..8fec79c 100644 (file)
@@ -49,6 +49,10 @@ int gr_context_get_recommended_sample_count(gr_context_t* context, gr_pixelconfi
     return AsGrContext(context)->getRecommendedSampleCount((GrPixelConfig)config, dpi);
 }
 
+void gr_context_flush(gr_context_t* context, gr_context_flushbits_t flags) {
+    AsGrContext(context)->flush((GrContext::FlushBits)flags);
+}
+
 
 const gr_glinterface_t* gr_glinterface_default_interface() {
     return ToGrGLInterface(GrGLDefaultInterface());
index 31909be..7914289 100644 (file)
@@ -290,4 +290,8 @@ static_assert ((int)GrBackend::kVulkan_GrBackend   == (int)VULKAN_GR_BACKEND,
 static_assert ((bool)SkBudgeted::kNo    == (bool)false,   ASSERT_MSG(SkBudgeted, bool));
 static_assert ((bool)SkBudgeted::kYes   == (bool)true,    ASSERT_MSG(SkBudgeted, bool));
 
+// gr_context_flushbits_t
+static_assert ((int)0                                         == (int)NONE_GR_CONTEXT_FLUSHBITS,      ASSERT_MSG(GrContext::FlushBits, gr_context_flushbits_t));
+static_assert ((int)GrContext::FlushBits::kDiscard_FlushBit   == (int)DISCARD_GR_CONTEXT_FLUSHBITS,   ASSERT_MSG(GrContext::FlushBits, gr_context_flushbits_t));
+
 #endif