MCGIntegerRectangle MCGRegionGetBounds(MCGRegionRef p_region) { if (p_region == nil) return MCGIntegerRectangleMake(0, 0, 0, 0); SkIRect t_irect; t_irect = p_region->region.getBounds(); return MCGIntegerRectangleMake(t_irect.x(), t_irect.y(), t_irect.width(), t_irect.height()); }
bool MCImageBitmapToCGImage(MCImageBitmap *p_bitmap, CGColorSpaceRef p_colorspace, bool p_copy, bool p_invert, CGImageRef &r_image) { if (p_bitmap == nil) return false; bool t_mask; t_mask = MCImageBitmapHasTransparency(p_bitmap); MCGRaster t_raster; t_raster = MCImageBitmapGetMCGRaster(p_bitmap, true); return MCGRasterToCGImage(t_raster, MCGIntegerRectangleMake(0, 0, p_bitmap->width, p_bitmap->height), p_colorspace, p_copy, p_invert, r_image); }
bool MCGRegionIterate(MCGRegionRef p_region, MCGRegionIterateCallback p_callback, void *p_context) { if (p_region == nil) return false; bool t_success; t_success = true; SkRegion::Iterator t_iterator(p_region->region); while (t_success && !t_iterator.done()) { const SkIRect &t_rect = t_iterator.rect(); t_success = p_callback(p_context, MCGIntegerRectangleMake(t_rect.x(), t_rect.y(), t_rect.width(), t_rect.height())); t_iterator.next(); } return t_success; }