示例#1
0
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());
}
示例#2
0
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);
}
示例#3
0
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;
}