[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-10-31 UTC."],[[["\u003cp\u003e\u003ccode\u003eConfig.TextureUpdateMode\u003c/code\u003e enum describes how ARCore updates the camera texture, offering two modes: \u003ccode\u003eBIND_TO_TEXTURE_EXTERNAL_OES\u003c/code\u003e and \u003ccode\u003eEXPOSE_HARDWARE_BUFFER\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eBIND_TO_TEXTURE_EXTERNAL_OES\u003c/code\u003e, the default mode, provides the camera image through a \u003ccode\u003eGL_TEXTURE_EXTERNAL_OES\u003c/code\u003e texture.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eEXPOSE_HARDWARE_BUFFER\u003c/code\u003e provides the camera image through a \u003ccode\u003eHardwareBuffer\u003c/code\u003e, giving the app more control over texture binding; it is only available on Android API levels 27 and above.\u003c/p\u003e\n"]]],[],null,["# Config.TextureUpdateMode\n\n`\npublic static final enum\n`**Config.TextureUpdateMode**`\n` \nDescribes how ARCore will update the camera texture. See [Vulkan Rendering developer\nguide](https://developers.google.com/ar/develop/java/vulkan) for more information.\n\nThe default value is [BIND_TO_TEXTURE_EXTERNAL_OES](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode#BIND_TO_TEXTURE_EXTERNAL_OES). Use\n[Config.setTextureUpdateMode(Config.TextureUpdateMode)](/ar/reference/java/com/google/ar/core/Config#setTextureUpdateMode(com.google.ar.core.Config.TextureUpdateMode)) to set the desired mode. \n\nInherited Methods\n-----------------\n\nFrom `class\njava.lang.Enum` \n\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ` final `[Object](https://developer.android.com/reference/java/lang/Object)` ` | clone`()` |\n| ` final int ` | compareTo`(`[Config.TextureUpdateMode](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode)` arg0)` |\n| ` int ` | compareTo`(`[Object](https://developer.android.com/reference/java/lang/Object)` arg0)` |\n| ` final Optional\u003cEnumDesc\u003c`[Config.TextureUpdateMode](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode)`\u003e\u003e ` | describeConstable`()` |\n| ` final boolean ` | equals`(`[Object](https://developer.android.com/reference/java/lang/Object)` arg0)` |\n| ` final void ` | finalize`()` |\n| ` final `[Class](https://developer.android.com/reference/java/lang/Class)`\u003c`[Config.TextureUpdateMode](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode)`\u003e ` | getDeclaringClass`()` |\n| ` final int ` | hashCode`()` |\n| ` final `[String](https://developer.android.com/reference/java/lang/String)` ` | name`()` |\n| ` final int ` | ordinal`()` |\n| ` `[String](https://developer.android.com/reference/java/lang/String)` ` | toString`()` |\n| ` static \u003cT extends `[Enum](https://developer.android.com/reference/java/lang/Enum)`\u003cT\u003e\u003e T ` | valueOf`(`[Class](https://developer.android.com/reference/java/lang/Class)`\u003cT\u003e arg0, `[String](https://developer.android.com/reference/java/lang/String)` arg1)` |\n\nFrom `class\njava.lang.Object` \n\n|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|\n| ` `[Object](https://developer.android.com/reference/java/lang/Object)` ` | clone`()` |\n| ` boolean ` | equals`(`[Object](https://developer.android.com/reference/java/lang/Object)` arg0)` |\n| ` void ` | finalize`()` |\n| ` final `[Class](https://developer.android.com/reference/java/lang/Class)`\u003c?\u003e ` | getClass`()` |\n| ` int ` | hashCode`()` |\n| ` final void ` | notify`()` |\n| ` final void ` | notifyAll`()` |\n| ` `[String](https://developer.android.com/reference/java/lang/String)` ` | toString`()` |\n| ` final void ` | wait`(long arg0, int arg1)` |\n| ` final void ` | wait`(long arg0)` |\n| ` final void ` | wait`()` |\n\nFrom `interface\njava.lang.constant.Constable` \n\n|-----------------------------------------------|-----------------------|\n| ` abstract Optional\u003c? extends ConstantDesc\u003e ` | describeConstable`()` |\n\nFrom `interface\njava.lang.Comparable` \n\n|------------------|----------------------------------------------------------------------------------------------------------------|\n| ` abstract int ` | compareTo`(`[Config.TextureUpdateMode](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode)` arg0)` |\n\nEnum Values\n-----------\n\n#### public\nstatic\nfinal\nConfig.TextureUpdateMode\nBIND_TO_TEXTURE_EXTERNAL_OES\n\n### BIND_TO_TEXTURE_EXTERNAL_OES\n\n```java\npublic static final Config.TextureUpdateMode BIND_TO_TEXTURE_EXTERNAL_OES\n``` \nARCore provides the camera image through the `GL_TEXTURE_EXTERNAL_OES` texture provided\nto [Session.setCameraTextureName(int)](/ar/reference/java/com/google/ar/core/Session#setCameraTextureName(int)) or [Session.setCameraTextureNames(int[])](/ar/reference/java/com/google/ar/core/Session#setCameraTextureNames(int[])).\n\nThis is the default mode.\n\n#### public\nstatic\nfinal\nConfig.TextureUpdateMode\nEXPOSE_HARDWARE_BUFFER\n\n### EXPOSE_HARDWARE_BUFFER\n\n```java\npublic static final Config.TextureUpdateMode EXPOSE_HARDWARE_BUFFER\n``` \nARCore provides the camera image through a [HardwareBuffer](/ar/reference/java/android/hardware/HardwareBuffer). The\nhardware buffer for a [Frame](/ar/reference/java/com/google/ar/core/Frame) is accessible via [Frame.getHardwareBuffer()](/ar/reference/java/com/google/ar/core/Frame#getHardwareBuffer()). See\ndocumentation on [Native Hardware\nBuffer](https://developer.android.com/ndk/reference/group/a-hardware-buffer) in the Android NDK.\n\nThe client app is responsible for binding it to a `GL_TEXTURE_EXTERNAL_OES` (OpenGL\nES) or `VkImage` (Vulkan).\n\nWhen a configuration is active with [EXPOSE_HARDWARE_BUFFER](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode#EXPOSE_HARDWARE_BUFFER), texture names provided to [Session.setCameraTextureName(int)](/ar/reference/java/com/google/ar/core/Session#setCameraTextureName(int)) and [Session.setCameraTextureNames(int[])](/ar/reference/java/com/google/ar/core/Session#setCameraTextureNames(int[])).are\nignored.\n\nThis is only available on Android API levels 27 and above. Using [Session.configure(Config)](/ar/reference/java/com/google/ar/core/Session#configure(com.google.ar.core.Config)) to set [EXPOSE_HARDWARE_BUFFER](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode#EXPOSE_HARDWARE_BUFFER) on\nan incompatible device will throw [UnsupportedConfigurationException](/ar/reference/java/com/google/ar/core/exceptions/UnsupportedConfigurationException)."]]