UIImageView setImage 伪代码

image.png

image.png

image.png

image.png

写成伪代码的形式

void main(){
    while(true){
        _CFRunLoopRun() {
            _CFRunLoopDoObservers(){
                CA::Transaction::observer_callback(_CFRunLoopObserver*,unsigned long,void*){
                    CA::Transaction::commit(){
                        CA::Context::commit_transaction(CA::Transaction *){
                            CA::Layer::commit_if_needed(CA::Transaction*,void(*)(CA::Layer*,unsigned int, unsigned int, void*)){
                                CA::Context::commit_layer(CA::Layer*,unsigned int, unsigned int, void*){
                                    [CALayer _copyRenderLayer:layerFlags:commitFlags:]{
                                        malloc_zone_malloc()
                                    }
                                }
                            }
                            CA::Layer::prepare_commit(CA::Transaction*){
                                CA::Render::prepare_image(CGImage*,CGColorSpace*,unsigned int, double, double){
                                    CA::Render::copy_image(CGImage*,CGColorSpace*,unsigned int,double, double){
                                        CGImageProviderCopyIOSurface(){
                                            _csiCompressImageProviderCopyIOSurfaceWithOptions(){
                                                [_CSIRenditionBlockData expandCSIBitmapData:fromSlice:makeReadOnly:]{
                                                    CUIUncompressDeepmapImageData(){
                                                        //不确定
                                                        dispatch_sync(){
                                                            _CUIUncompressDeepmapImageData_block(){
                                                                vImageDeepmapDecodeStreamCreate()
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        CA::Render::add_observer(CA::Render::NotificationName, CA::Render::Object*,void(*)(CA::Render::Object *,void*,void*),void*, bool)
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容