/* Returns the union of two regions. This is all pixels * in either of source1 or source2. */ int clip_GDK_REGIONUNION(ClipMachine * ClipMachineMemory) { C_object *creg = _fetch_co_arg(ClipMachineMemory); C_object *creg2 = _fetch_cobject(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); C_object *cdest; CHECKCOBJ(creg, GDK_IS_REGION(creg->object)); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCOBJ(creg2, GDK_IS_REGION(creg->object)); gdk_region_union(GDK_REGION(creg), GDK_REGION(creg2)); if (creg) { cdest = _register_object(ClipMachineMemory, GDK_REGION(creg), GDK_TYPE_REGION, NULL, NULL); if (cdest) _clip_mclone(ClipMachineMemory, RETPTR(ClipMachineMemory), &cdest->obj); } return 0; err: return 1; }
void scenemanager_claim_polygon(scenemanager_t* pSceneManager, GdkPoint *pPoints, gint nNumPoints) { // Create a GdkRegion from the given points and union it with the 'taken region' GdkRegion* pNewRegion = gdk_region_polygon(pPoints, nNumPoints, GDK_WINDING_RULE); gdk_region_union(pSceneManager->pTakenRegion, pNewRegion); gdk_region_destroy(pNewRegion); }
static VALUE rg_union(VALUE self, VALUE other) { if (RVAL2GTYPE(other) == GDK_TYPE_RECTANGLE){ gdk_region_union_with_rect(_SELF(self), (GdkRectangle*)RVAL2BOXED(other, GDK_TYPE_RECTANGLE)); } else { gdk_region_union(_SELF(self), _SELF(other)); } return self; }
bool wxRegion::DoUnionWithRegion( const wxRegion& region ) { wxCHECK_MSG( region.Ok(), false, _T("invalid region") ); if (!m_refData) { m_refData = new wxRegionRefData(); M_REGIONDATA->m_region = gdk_region_new(); } else { AllocExclusive(); } gdk_region_union( M_REGIONDATA->m_region, region.GetRegion() ); return true; }
static void sCombineRegion(cdCtxCanvas *ctxcanvas, GdkRegion* rgn) { switch(ctxcanvas->canvas->combine_mode) { case CD_UNION: gdk_region_union(ctxcanvas->new_rgn, rgn); break; case CD_INTERSECT: gdk_region_intersect(ctxcanvas->new_rgn, rgn); break; case CD_DIFFERENCE: gdk_region_subtract(ctxcanvas->new_rgn, rgn); break; case CD_NOTINTERSECT: gdk_region_xor(ctxcanvas->new_rgn, rgn); break; } gdk_region_destroy(rgn); }
bool wxRegion::DoUnionWithRegion( const wxRegion& region ) { if (region.m_refData == NULL) { } else if (m_refData == NULL) { m_refData = new wxRegionRefData(*M_REGIONDATA_OF(region)); } else { AllocExclusive(); #ifdef __WXGTK3__ cairo_region_union(M_REGIONDATA->m_region, M_REGIONDATA_OF(region)->m_region); #else gdk_region_union( M_REGIONDATA->m_region, region.GetRegion() ); #endif } return true; }
static void _gegueb_event_cb(GdkEvent *event, gpointer user_data) { Gegueb_Window *thiz = user_data; switch(event->type) { case GDK_EXPOSE: case GDK_DAMAGE: { GdkRectangle *rects; Eina_Rectangle *r; int nrects; int i; gdk_region_union(thiz->regions, event->expose.region); gdk_region_get_rectangles(event->expose.region, &rects, &nrects); for (i = 0; i < nrects; i++) { r = malloc(sizeof(Eina_Rectangle)); r->x = rects[i].x; r->y = rects[i].y; r->w = rects[i].width; r->h = rects[i].height; thiz->damages = eina_list_append(thiz->damages, r); } if (!event->expose.count) { _gegueb_window_draw(thiz); } } break; case GDK_CONFIGURE: gegueb_document_configure(thiz->doc, event->configure.width, event->configure.height); _gegueb_window_draw(thiz); break; case GDK_DELETE: egueb_dom_window_close_notify(thiz->ewin); break; case GDK_MOTION_NOTIFY: //egueb_dom_input_feed_mouse_move(thiz->input, event->motion.x, event->motion.y); break; case GDK_BUTTON_PRESS: //egueb_dom_input_feed_mouse_down(thiz->input, event->button.button); break; case GDK_BUTTON_RELEASE: //egueb_dom_input_feed_mouse_up(thiz->input, event->button.button); break; case GDK_KEY_PRESS: printf("ui key press\n"); break; case GDK_KEY_RELEASE: printf("ui key release\n"); break; case GDK_ENTER_NOTIFY: printf("ui enter\n"); break; case GDK_LEAVE_NOTIFY: printf("ui leave\n"); break; case GDK_FOCUS_CHANGE: printf("ui focus\n"); break; } }