[{"data":1,"prerenderedAt":526},["ShallowReactive",2],{"1W8PXug6RK":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":525,"_id":4},"vkGetMemoryAndroidHardwareBufferANDROID","Get an Android hardware buffer for a memory object","VK_ANDROID_external_memory_android_hardware_buffer","protos",[],{"type":10,"children":11,"toc":523},"root",[12,20,315,361,435,517],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","To export an Android hardware buffer referencing the payload of a Vulkan\ndevice memory object, call:",{"type":13,"tag":21,"props":22,"children":23},"code-group",{},[24,137],{"type":13,"tag":25,"props":26,"children":32},"pre",{"className":27,"code":28,"filename":29,"language":30,"meta":31,"style":31},"language-c shiki shiki-themes github-light-default github-dark-default","VkResult vkGetMemoryAndroidHardwareBufferANDROID(\n VkDevice device,\n const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,\n struct AHardwareBuffer** pBuffer);\n","C","c","",[33],{"type":13,"tag":34,"props":35,"children":36},"code",{"__ignoreMap":31},[37,59,79,108],{"type":13,"tag":38,"props":39,"children":42},"span",{"class":40,"line":41},"line",1,[43,49,54],{"type":13,"tag":38,"props":44,"children":46},{"style":45},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[47],{"type":18,"value":48},"VkResult ",{"type":13,"tag":38,"props":50,"children":52},{"style":51},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[53],{"type":18,"value":4},{"type":13,"tag":38,"props":55,"children":56},{"style":45},[57],{"type":18,"value":58},"(\n",{"type":13,"tag":38,"props":60,"children":62},{"class":40,"line":61},2,[63,68,74],{"type":13,"tag":38,"props":64,"children":65},{"style":45},[66],{"type":18,"value":67}," VkDevice ",{"type":13,"tag":38,"props":69,"children":71},{"style":70},"--shiki-default:#953800;--shiki-dark:#FFA657",[72],{"type":18,"value":73},"device",{"type":13,"tag":38,"props":75,"children":76},{"style":45},[77],{"type":18,"value":78},",\n",{"type":13,"tag":38,"props":80,"children":82},{"class":40,"line":81},3,[83,89,94,99,104],{"type":13,"tag":38,"props":84,"children":86},{"style":85},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[87],{"type":18,"value":88}," const",{"type":13,"tag":38,"props":90,"children":91},{"style":45},[92],{"type":18,"value":93}," VkMemoryGetAndroidHardwareBufferInfoANDROID",{"type":13,"tag":38,"props":95,"children":96},{"style":85},[97],{"type":18,"value":98},"*",{"type":13,"tag":38,"props":100,"children":101},{"style":70},[102],{"type":18,"value":103}," pInfo",{"type":13,"tag":38,"props":105,"children":106},{"style":45},[107],{"type":18,"value":78},{"type":13,"tag":38,"props":109,"children":111},{"class":40,"line":110},4,[112,117,122,127,132],{"type":13,"tag":38,"props":113,"children":114},{"style":85},[115],{"type":18,"value":116}," struct",{"type":13,"tag":38,"props":118,"children":119},{"style":45},[120],{"type":18,"value":121}," AHardwareBuffer",{"type":13,"tag":38,"props":123,"children":124},{"style":85},[125],{"type":18,"value":126},"**",{"type":13,"tag":38,"props":128,"children":129},{"style":70},[130],{"type":18,"value":131}," pBuffer",{"type":13,"tag":38,"props":133,"children":134},{"style":45},[135],{"type":18,"value":136},");\n",{"type":13,"tag":25,"props":138,"children":143},{"className":139,"code":140,"filename":141,"language":142,"meta":31,"style":31},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn get_memory_android_hardware_buffer_android(\n device: crate :: vk :: vk::Device,\n p_info: *const vk::MemoryGetAndroidHardwareBufferInfoANDROID,\n p_buffer: *mut *mut AHardwareBuffer,\n) -> vk::Result;\n","Rust","rs",[144],{"type":13,"tag":34,"props":145,"children":146},{"__ignoreMap":31},[147,169,220,254,283],{"type":13,"tag":38,"props":148,"children":149},{"class":40,"line":41},[150,155,160,165],{"type":13,"tag":38,"props":151,"children":152},{"style":85},[153],{"type":18,"value":154},"pub",{"type":13,"tag":38,"props":156,"children":157},{"style":85},[158],{"type":18,"value":159}," fn",{"type":13,"tag":38,"props":161,"children":162},{"style":51},[163],{"type":18,"value":164}," get_memory_android_hardware_buffer_android",{"type":13,"tag":38,"props":166,"children":167},{"style":45},[168],{"type":18,"value":58},{"type":13,"tag":38,"props":170,"children":171},{"class":40,"line":61},[172,177,182,187,192,197,202,207,211,216],{"type":13,"tag":38,"props":173,"children":174},{"style":45},[175],{"type":18,"value":176}," device",{"type":13,"tag":38,"props":178,"children":179},{"style":85},[180],{"type":18,"value":181},":",{"type":13,"tag":38,"props":183,"children":184},{"style":85},[185],{"type":18,"value":186}," crate",{"type":13,"tag":38,"props":188,"children":189},{"style":85},[190],{"type":18,"value":191}," ::",{"type":13,"tag":38,"props":193,"children":194},{"style":45},[195],{"type":18,"value":196}," vk ",{"type":13,"tag":38,"props":198,"children":199},{"style":85},[200],{"type":18,"value":201},"::",{"type":13,"tag":38,"props":203,"children":204},{"style":70},[205],{"type":18,"value":206}," vk",{"type":13,"tag":38,"props":208,"children":209},{"style":85},[210],{"type":18,"value":201},{"type":13,"tag":38,"props":212,"children":213},{"style":70},[214],{"type":18,"value":215},"Device",{"type":13,"tag":38,"props":217,"children":218},{"style":45},[219],{"type":18,"value":78},{"type":13,"tag":38,"props":221,"children":222},{"class":40,"line":81},[223,228,232,237,241,245,250],{"type":13,"tag":38,"props":224,"children":225},{"style":45},[226],{"type":18,"value":227}," p_info",{"type":13,"tag":38,"props":229,"children":230},{"style":85},[231],{"type":18,"value":181},{"type":13,"tag":38,"props":233,"children":234},{"style":85},[235],{"type":18,"value":236}," *const",{"type":13,"tag":38,"props":238,"children":239},{"style":70},[240],{"type":18,"value":206},{"type":13,"tag":38,"props":242,"children":243},{"style":85},[244],{"type":18,"value":201},{"type":13,"tag":38,"props":246,"children":247},{"style":70},[248],{"type":18,"value":249},"MemoryGetAndroidHardwareBufferInfoANDROID",{"type":13,"tag":38,"props":251,"children":252},{"style":45},[253],{"type":18,"value":78},{"type":13,"tag":38,"props":255,"children":256},{"class":40,"line":110},[257,262,266,271,275,279],{"type":13,"tag":38,"props":258,"children":259},{"style":45},[260],{"type":18,"value":261}," p_buffer",{"type":13,"tag":38,"props":263,"children":264},{"style":85},[265],{"type":18,"value":181},{"type":13,"tag":38,"props":267,"children":268},{"style":85},[269],{"type":18,"value":270}," *mut",{"type":13,"tag":38,"props":272,"children":273},{"style":85},[274],{"type":18,"value":270},{"type":13,"tag":38,"props":276,"children":277},{"style":70},[278],{"type":18,"value":121},{"type":13,"tag":38,"props":280,"children":281},{"style":45},[282],{"type":18,"value":78},{"type":13,"tag":38,"props":284,"children":286},{"class":40,"line":285},5,[287,292,297,301,305,310],{"type":13,"tag":38,"props":288,"children":289},{"style":45},[290],{"type":18,"value":291},") ",{"type":13,"tag":38,"props":293,"children":294},{"style":85},[295],{"type":18,"value":296},"->",{"type":13,"tag":38,"props":298,"children":299},{"style":70},[300],{"type":18,"value":206},{"type":13,"tag":38,"props":302,"children":303},{"style":85},[304],{"type":18,"value":201},{"type":13,"tag":38,"props":306,"children":307},{"style":70},[308],{"type":18,"value":309},"Result",{"type":13,"tag":38,"props":311,"children":312},{"style":45},[313],{"type":18,"value":314},";\n",{"type":13,"tag":316,"props":317,"children":318},"ul",{},[319,330,350],{"type":13,"tag":320,"props":321,"children":322},"li",{},[323,328],{"type":13,"tag":34,"props":324,"children":326},{"className":325},[],[327],{"type":18,"value":73},{"type":18,"value":329}," is the logical device that created the device memory being\nexported.",{"type":13,"tag":320,"props":331,"children":332},{},[333,339,341,348],{"type":13,"tag":34,"props":334,"children":336},{"className":335},[],[337],{"type":18,"value":338},"pInfo",{"type":18,"value":340}," is a pointer to a\n",{"type":13,"tag":342,"props":343,"children":345},"a",{"href":344},"/man/VkMemoryGetAndroidHardwareBufferInfoANDROID",[346],{"type":18,"value":347},"VkMemoryGetAndroidHardwareBufferInfoANDROID",{"type":18,"value":349}," structure containing\nparameters of the export operation.",{"type":13,"tag":320,"props":351,"children":352},{},[353,359],{"type":13,"tag":34,"props":354,"children":356},{"className":355},[],[357],{"type":18,"value":358},"pBuffer",{"type":18,"value":360}," will return an Android hardware buffer referencing the\npayload of the device memory object.",{"type":13,"tag":14,"props":362,"children":363},{},[364,366,371,373,378,380,386,388,391,393,399,401,405,406,412,413,418,419,422,424,429,430,433],{"type":18,"value":365},"Each call to ",{"type":13,"tag":34,"props":367,"children":369},{"className":368},[],[370],{"type":18,"value":4},{"type":18,"value":372}," ",{"type":13,"tag":374,"props":375,"children":377},"normative",{"type":376},"must",[],{"type":18,"value":379}," return an\nAndroid hardware buffer with a new reference acquired in addition to the\nreference held by the ",{"type":13,"tag":342,"props":381,"children":383},{"href":382},"/man/VkDeviceMemory",[384],{"type":18,"value":385},"VkDeviceMemory",{"type":18,"value":387},".\nTo avoid leaking resources, the application ",{"type":13,"tag":374,"props":389,"children":390},{"type":376},[],{"type":18,"value":392}," release the reference by\ncalling ",{"type":13,"tag":34,"props":394,"children":396},{"className":395},[],[397],{"type":18,"value":398},"AHardwareBuffer_release",{"type":18,"value":400}," when it is no longer needed.\nWhen called with the same handle in\n",{"type":13,"tag":342,"props":402,"children":403},{"href":344},[404],{"type":18,"value":347},{"type":18,"value":201},{"type":13,"tag":34,"props":407,"children":409},{"className":408},[],[410],{"type":18,"value":411},"memory",{"type":18,"value":78},{"type":13,"tag":34,"props":414,"children":416},{"className":415},[],[417],{"type":18,"value":4},{"type":18,"value":372},{"type":13,"tag":374,"props":420,"children":421},{"type":376},[],{"type":18,"value":423}," return the same Android\nhardware buffer object.\nIf the device memory was created by importing an Android hardware buffer,\n",{"type":13,"tag":34,"props":425,"children":427},{"className":426},[],[428],{"type":18,"value":4},{"type":18,"value":372},{"type":13,"tag":374,"props":431,"children":432},{"type":376},[],{"type":18,"value":434}," return that same Android\nhardware buffer object.",{"type":13,"tag":436,"props":437,"children":439},"validity-group",{"name":438},"Valid Usage (Implicit)",[440,467,491],{"type":13,"tag":441,"props":442,"children":444},"validity-field",{"name":443},"VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter",[445],{"type":13,"tag":14,"props":446,"children":447},{},[448,453,454,457,459,465],{"type":13,"tag":34,"props":449,"children":451},{"className":450},[],[452],{"type":18,"value":73},{"type":18,"value":372},{"type":13,"tag":374,"props":455,"children":456},{"type":376},[],{"type":18,"value":458}," be a valid ",{"type":13,"tag":342,"props":460,"children":462},{"href":461},"/man/VkDevice",[463],{"type":18,"value":464},"VkDevice",{"type":18,"value":466}," handle",{"type":13,"tag":441,"props":468,"children":470},{"name":469},"VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameter",[471],{"type":13,"tag":14,"props":472,"children":473},{},[474,479,480,483,485,489],{"type":13,"tag":34,"props":475,"children":477},{"className":476},[],[478],{"type":18,"value":338},{"type":18,"value":372},{"type":13,"tag":374,"props":481,"children":482},{"type":376},[],{"type":18,"value":484}," be a valid pointer to a valid ",{"type":13,"tag":342,"props":486,"children":487},{"href":344},[488],{"type":18,"value":347},{"type":18,"value":490}," structure",{"type":13,"tag":441,"props":492,"children":494},{"name":493},"VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameter",[495],{"type":13,"tag":14,"props":496,"children":497},{},[498,503,504,507,509,515],{"type":13,"tag":34,"props":499,"children":501},{"className":500},[],[502],{"type":18,"value":358},{"type":18,"value":372},{"type":13,"tag":374,"props":505,"children":506},{"type":376},[],{"type":18,"value":508}," be a valid pointer to a valid pointer to an ",{"type":13,"tag":342,"props":510,"children":512},{"href":511},"/man/AHardwareBuffer",[513],{"type":18,"value":514},"AHardwareBuffer",{"type":18,"value":516}," value",{"type":13,"tag":518,"props":519,"children":520},"style",{},[521],{"type":18,"value":522},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":31,"searchDepth":61,"depth":61,"links":524},[],"markdown",1725732618897]