Options
These globals are now defined:
double duration; // The requested duration of the animation. double frame; // A value in [0, 1] of where we are in the animation.
This global is now defined:
GrBackendRenderTarget backEndRenderTarget;
GrBackendTexture backEndTextureRenderTarget;
Optional source image
These globals are now defined:
SkBitmap source; sk_sp<SkImage> image; GrBackendTexture backEndTexture; // GPU Only.
Note:
Adding comments with SK_FOLD_START and SK_FOLD_END creates foldable code
blocks.
These blocks will be folded by default and are useful for highlighting specific lines of code.
You can also use the keyboard shortcuts Ctrl+S and Ctrl+E in the code editor to set them.
These blocks will be folded by default and are useful for highlighting specific lines of code.
You can also use the keyboard shortcuts Ctrl+S and Ctrl+E in the code editor to set them.
xxxxxxxxxx
62
typedef struct Point {
double x;
double y;
} Point;
typedef struct Circle {
Point center;
double radius;
} Circle;
// a recursing circle drawing
void drawCircle(Circle c,SkCanvas *canvas, SkPaint paint) {
canvas->drawCircle(c.center.x, c.center.y, c.radius, paint);
if(c.radius > 32) {
Circle circles[4] = {
{.center = {
.x = c.center.x + c.radius/2,
.y = c.center.y},
.radius = c.radius/2},
{.center = {
.x = c.center.x - c.radius/2,
.y = c.center.y},
.radius = c.radius/2},
{.center = {
.x = c.center.x,
.y = c.center.y + c.radius/2},
.radius = c.radius/2},
{.center = {
.x = c.center.x,
.y = c.center.y - c.radius/2},
.radius = c.radius/2}
};
for(int i = 0; i <4; i++) {
drawCircle(circles[i], canvas, paint);
}
}
}
void draw(SkCanvas* canvas) {
canvas->drawColor(SK_ColorWHITE);
SkPaint paint;
paint.setStyle(SkPaint::kStroke_Style);
paint.setStrokeWidth(1);
paint.setColor(0xff4285F4);
paint.setAntiAlias(true);
paint.setStrokeCap(SkPaint::kRound_Cap);
Circle c = {
.center = { .x = 500, .y = 500},
.radius = 200
};
drawCircle(c, canvas, paint);
}
Compilation Warnings/Errors
Runtime Errors
Run Details
GL Version: OpenGL ES 3.0 SwiftShader 4.1.0.5 GL Vendor: Google Inc. GL Renderer: Google SwiftShader GL Extensions: GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_framebuffer_object GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_texture_3D GL_OES_vertex_array_object GL_OES_vertex_half_float GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_draw_buffers GL_EXT_instanced_arrays GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_texture_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_ARB_texture_rectangle GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_APPLE_texture_format_BGRA8888 GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_texture_filtering_hint GL_NV_depth_buffer_float2 GL_NV_fence GL_NV_framebuffer_blit GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil