ASFUNCTIONBODY(BitmapData,hitTest) { BitmapData* th = obj->as<BitmapData>(); if(th->disposed) throw Class<ArgumentError>::getInstanceS("Disposed BitmapData"); _NR<Point> firstPoint; uint32_t firstAlphaThreshold; _NR<ASObject> secondObject; _NR<Point> secondBitmapDataPoint; uint32_t secondAlphaThreshold; ARG_UNPACK (firstPoint) (firstAlphaThreshold) (secondObject) (secondBitmapDataPoint, NullRef) (secondAlphaThreshold,1); if(!secondObject->getClass() || !secondObject->getClass()->isSubClass(Class<Point>::getClass())) throw Class<TypeError>::getInstanceS("Error #1034: Wrong type"); if(!secondBitmapDataPoint.isNull() || secondAlphaThreshold!=1) LOG(LOG_NOT_IMPLEMENTED,"BitmapData.hitTest does not expect some parameters"); Point* secondPoint = secondObject->as<Point>(); uint32_t pix=th->getPixelPriv(secondPoint->getX()-firstPoint->getX(), secondPoint->getY()-firstPoint->getY()); if((pix>>24)>=firstAlphaThreshold) return abstract_b(true); else return abstract_b(false);
ASFUNCTIONBODY(BitmapData,getPixel32) { BitmapData* th = obj->as<BitmapData>(); if(th->disposed) throw Class<ArgumentError>::getInstanceS("Disposed BitmapData"); int32_t x; int32_t y; ARG_UNPACK(x)(y); uint32_t pix=th->getPixelPriv(x, y); return abstract_ui(pix); }