Jetpack SceneCore
| লেটেস্ট আপডেট | স্টেবল রিলিজ | রিলিজ ক্যান্ডিডেট | বিটা রিলিজ | আলফা রিলিজ |
|---|---|---|---|---|
| ০৭ অক্টোবর, ২০২৬ | - | 1.0.0-rc02 | - | - |
ডিপেন্ডেন্সি ঘোষণা করা
XR SceneCore-এ কোনও ডিপেন্ডেন্সি যোগ করতে, আপনাকে অবশ্যই নিজের প্রোজেক্টে Google Maven রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য Google-এর Maven রিপোজিটরি পড়ুন।
আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে প্রয়োজনীয় আর্টিফ্যাক্টের জন্য
ডিপেন্ডেন্সি যোগ করুন:
গ্রোভি
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-rc01" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-rc01" }
কোটলিন
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-rc01") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-rc01") }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যোগ করুন দেখুন।
মতামত
আপনার মতামত Jetpack-কে আরও ভালো করে তুলতে সাহায্য করে। আপনি যদি নতুন কোনও সমস্যা খুঁজে পান বা এই লাইব্রেরি উন্নত করার জন্য কোনও আইডিয়া থাকে, তাহলে আমাদের জানান। নতুন লাইব্রেরি তৈরি করার আগে এই লাইব্রেরিতে আগে থেকে থাকা সমস্যা দেখে নিন। আপনি তারকাচিহ্ন বোতামে ক্লিক করে আগে থেকে থাকা কোনও সমস্যাতে আপনার ভোট যোগ করতে পারবেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
ভার্সন ১.০
ভার্সন 1.0.0-rc02
০৭ অক্টোবর, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-rc02 রিলিজ করা হয়েছে। 1.0.0-rc02 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
SessionExt-এperceptionRuntimeCacheসরিয়ে সম্ভাব্য মেমরি লিক সংক্রান্ত সমস্যার সমাধান করা হয়েছে এবংSessionইনস্ট্যান্স থেকে সরাসরিPerceptionRuntimeরিট্রিভ করার জন্য এটি রিফ্যাক্টর করা হয়েছে। (Ie35b1)OpenXRনেটিভ হ্যান্ডেলের জন্যapplicationContextব্যবহার করে সম্ভাব্য কনটেক্সট লিক সংক্রান্ত সমস্যার সমাধান করা হয়েছে, যাতে নেটিভ রানটাইমActivityকনটেক্সটের রেফারেন্স না ধরে রাখে। (Ie35b1)- সঠিক সিঙ্ক্রোনাইজেশন ও ইনিশিয়ালাইজেশন লকিং চালু করার মাধ্যমে
XrInstanceManager-এ রেস কন্ডিশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ie35b1) ReferenceCleanerঠিক করা হয়েছে যাতে ক্লিনিং অ্যাকশন ডি-রেজিস্টার করা যায় এবংEntityনিশ্চিত করা হয়েছে যেdispose()চলাকালীন ক্লিনিং অ্যাকশন স্পষ্টভাবে চালানো হয়, এর ফলে গার্বেজ কালেকশনের সময় ডুপ্লিকেট এক্সিকিউশন আটকানো যায়। (Ie35b1)Scene-এ মেমরি লিক সংক্রান্ত সমস্যা সমাধান করা হয়েছে, এর জন্যSessionExt-এsceneCacheসরিয়ে দেওয়া হয়েছে এবংsessionConnectorsথেকে সরাসরি ইনস্ট্যান্স পাওয়ার জন্যScene-কে রিফ্যাক্টর করা হয়েছে। (Ie35b1)
ভার্সন 1.0.0-rc01
৯ সেপ্টেম্বর, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.0.0-rc01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
xr:scenecore:scenecore-openxrলাইব্রেরিতে যোগ করা হয়েছে। (Ic49f2)- 1.0.0 স্থিতিশীল রিলিজের আগে বেশ কয়েকটি বন্ধ হয়ে যাওয়া API সরিয়ে দেওয়া হয়েছে।
সমস্যার সমাধান
- মেমরি লিক সংক্রান্ত বাগ সমাধান করা হয়েছে যেখানে অ্যাক্টিভিটি ধ্বংস হয়ে যাওয়ার পরেও সিস্টেম অ্যাক্টিভিটি রেফারেন্স ধরে রাখতে পারত। (I6dcd7)
আচরণে পরিবর্তন
- SceneCore থেকে logcat আউটপুট সরিয়ে দেওয়া হয়েছে। (I10c3c)
ভার্সন 1.0.0-beta02
১২ আগস্ট, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-beta02 রিলিজ করা হয়েছে। ভার্সন 1.0.0-beta02-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- প্যারেন্ট এন্টিটি গার্বেজ কালেকশন করা হলে
toMoveEvent(),nullরিটার্ন করবে। (Ia7a1b)
ভার্সন 1.0.0-beta01
১৫ জুলাই, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-beta01 রিলিজ করা হয়েছে। ভার্সন 1.0.0-beta01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
GltfAnimationওSpatialGltfModelAnimationAPI পরীক্ষামূলক হিসেবে চিহ্নিত করা হয়েছে। কিছু প্রপার্টিকে গেটারে পরিবর্তন করা হয়েছে। (I8d689, b/524771027)- পাবলিক
MovableComponent.createTrackingMovableফ্যাক্টরি মেথড সরিয়ে দেওয়া হয়েছে। (I00912, b/477169015) - Session.create-কে সাসপেন্ড ফাংশনে কনভার্ট করা হয়েছে। (I5d27f)
ActivitySpaceএবংAnchorSpaceএখন একটি সাধারণSpaceEntityক্লাসকে এক্সটেন্ড করে, যার মধ্যে এমন এন্টিটির সাধারণ আচরণ থাকে যাদের পজিশন সিস্টেমের মাধ্যমে কন্ট্রোল করা হয় (I506ec, b/513619219)AnchorEntityআপডেট করেAnchorSpaceকরা হয়েছে (Ifa95e, b/513619219)- পাবলিক টেস্ট API
SoundEffectPoolComponentTesterপ্রদান করে। (I87df7, b/498104417) SurfaceEntity.Shape.Quadকনস্ট্রাক্টরে একটি বিকল্পcornerRadiusপ্যারামিটার যোগ করা হয়েছে এবংcornerRadiusপ্রপার্টি সর্বজনীন করা হয়েছে। রাউন্ডেড কোণ সহSurfaceEntityক্যানভাস রেন্ডার করার জন্য ডেভেলপাররা এখন কোয়াড শেপ তৈরি করার সময় একটি কোণীয় ব্যাসার্ধ নির্দিষ্ট করতে এবং আগে থেকে থাকা কোয়াডের ব্যাসার্ধ কোয়েরি করতে পারবেন। (Ia7809, b/474681085)- পাবলিক টেস্ট API
SpatialAudioTrackBuilderTester,SpatialAudioTrackTesterএবংSceneCoreTestRule.getTesterওভারলোড প্রদান করে। (I378c6, b/496333938) - একাধিক ARCore ধরনের জন্য
toString()-এর বিশেষ ওভাররাইড যোগ করুন। এইসব ধরনের তথ্য ডেভেলপারদের ডিবাগ করার উদ্দেশ্যে অতিরিক্ত তথ্য প্রদান করার জন্য তৈরি করা হয়েছে এবং প্রোডাকশন বা শিপ করা অ্যাপ্লিকেশনে ব্যবহার করার জন্য তৈরি করা হয়নি।
ভার্সন 1.0.0-alpha16
১৭ জুন, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-alpha16 রিলিজ করা হয়েছে। 1.0.0-alpha16 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
CustomMesh.BuilderFromMeshDataওCustomMesh.BuilderFromMeshBuffer-এaddVertexData,setIndexDataওaddSubset-এর জন্য ওভারলোড যোগ করা হয়েছে। এইসব ওভারলোড, ডেভেলপারদেরByteBufferRegionবাMeshSubset-এর মতো মধ্যবর্তী অবজেক্টে র্যাপ না করেই সরাসরি (যেমন,ByteBuffer,offset,size,topology,indexOffset,indexCount) র ডেটা ও প্যারামিটার পাস করতে দেয়। (I84d5c)Scene.requestFullSpaceMode()ওScene.requestHomeSpaceMode()-এর নাম পরিবর্তন করে যথাক্রমেrequestFullSpace()ওrequestHomeSpace()করা হয়েছে। "হোম স্পেস মোড" ও "ফুল স্পেস মোড" উল্লেখ করে এমন অন্যান্য পদ্ধতি ও ডকুমেন্টও একইভাবে আপডেট করা হয়েছে। (I45751)- পাবলিক টেস্ট API
PanelEntityTesterওMainPanelEntityTester(I961e4) প্রদান করে SoundEffectPoolComponent-এ (I4a750)pointSourceParamsপ্রপার্টি যোগ করা হচ্ছে- পাবলিক টেস্ট API
MovableComponentTester(I0c972) প্রদান করে - পাবলিক টেস্ট API প্রদান করে
PointerCaptureComponentTester(Ic0d4f) - পাবলিক টেস্ট API
ActivityPanelEntityTester(I837c4) প্রদান করে - পাবলিক টেস্ট API
ResizableComponentTester(I0a3a4) প্রদান করে - পাবলিক টেস্ট API
BoundsComponentTester.(Iefd53) প্রদান করে - পাবলিক টেস্ট API প্রদান করে
SpatialMediaPlayerTester(Ia3e09) - পাবলিক টেস্ট API
SpatialEnvironmentTester(Icf60f) প্রদান করে - পাবলিক টেস্ট API
GltfModelTesterওSceneCoreTestRule.getGltfModelTesterপ্রদান করে। (I33fcb) - পাবলিক টেস্ট API
InteractableComponentTesterপ্রদান করে। (Ia7096) - পাবলিক টেস্ট API
SurfaceEntityTesterপ্রদান করে। (Ic0740) - পাবলিক টেস্ট API
GltfModelEntityTester,TestGltfModelNodeওTestGltfAnimationপ্রদান করে। (I72c4d) - পাবলিক টেস্ট API
SceneTesterওSceneCoreTestRule.sceneTesterপ্রদান করে। (Ib4ec5) - পাবলিক টেস্ট API
PerceptionSpaceTesterওSceneCoreTestRule.perceptionSpaceTesterপ্রদান করে। (Icf739) - পাবলিক টেস্ট API
MeshEntityTesterপ্রদান করে। (I63801) - পাবলিক টেস্ট API
ImageBasedLightingAssetTesterএবংSceneCoreTestRule.getTesterওভারলোড প্রদান করে। (I57ec4) - পাবলিক টেস্ট API
TextureTester(Ia865b) প্রদান করে - পাবলিক টেস্ট API
PositionalAudioComponentTester(Icd96e) প্রদান করে - পাবলিক টেস্ট API
SpatialSoundPoolTester(Ia3531) প্রদান করে - পাবলিক টেস্ট API
SoundEffectPoolTester(If349a) প্রদান করে - পাবলিক টেস্ট API
ActivitySpaceTesterওSceneCoreTestRule.activitySpaceTesterপ্রদান করে। (I2d5c2) - পাবলিক টেস্ট API
SpatialWindowTester(I41837) প্রদান করে - পাবলিক টেস্ট API
AnchorEntityTester(I68404) প্রদান করে - পাবলিক টেস্ট API ইন্টারফেস
SceneCoreTestRuleপ্রদান করে। (Ic72d3) PixelDensityক্লাস যোগ করা হয়েছে এবংScene#virtualPixelDensity-এর মাধ্যমে তা এক্সপোজ করা হয়েছে, যাতেActivitySpace-এ সঠিক ফিজিক্যাল ডাইমেনশন ম্যাপিংয়ের জন্য হার্ডওয়্যার-ভিত্তিক পিক্সেল-পার-মিটার রেশিও প্রদান করা যায়। (I0e3ac)- কাস্টম মেশ তৈরি ও রেন্ডার করার জন্য পাবলিক API যোগ করা হয়েছে। (I7ad2f)
VertexLayoutAPI-কেVertexBufferLayout-এর তালিকা ব্যবহার করার জন্য আপডেট করা হয়েছে, যেখানে প্রতিটিVertexBufferLayoutএকটি ভার্টেক্স বাফার মধ্যে অ্যাট্রিবিউট বর্ণনা করে। এর ফলে, কাস্টম স্ট্রাইড ও অফসেট সহ ইন্টারলিভড অ্যাট্রিবিউট সহ আরও নমনীয় ভার্টেক্স ডেটা অ্যারেঞ্জমেন্টের সুবিধা পাওয়া যায়। (Ic426b)- অ্যাক্টিভিটি স্পেসের সাথে সম্পর্কিত পোজে ARCore ট্র্যাক করা যায় এমন কোনও অবজেক্টকে ট্রান্সফর্ম করার জন্য
MovableComponent.createTrackingMovableপ্রদান করে। (I12249) Entity.create-এ প্যারেন্টের ডিফল্ট ভ্যালু আপডেট করে 'নাল' করা হয়েছে। (Ic3145)Entityইন্টারফেসের পরিবর্তে ক্লাস হিসেবে আপডেট করা হয়েছে এবং এখন এটি সব ধরনের এন্টিটির মূল ক্লাস। এই পরিবর্তনের অংশ হিসেবেBaseEntityসরিয়ে দেওয়া হয়েছে। (I7fbc9)GltfModel,ExrImageওImageBasedLightingAssetএখনAutoCloseableপ্রয়োগ করে যাতে Kotlin-এরuseব্লক ব্যবহার করে বাগধারামূলক রিসোর্স ম্যানেজমেন্ট করা যায়। (I1ac79)- স্পেসিয়াল এনভায়রনমেন্ট লাইটিংকে সংজ্ঞায়িত করার জন্য
ExrImage-এর পরিবর্তেImageBasedLightingAssetক্লাস চালু করা হয়েছে।ExrImageবন্ধ করা হয়েছে এবং পাবলিক API থেকে সরিয়ে দেওয়া হয়েছে।SpatialEnvironmentPreference-কেImageBasedLightingAssetব্যবহার করার জন্য আপডেট করা হয়েছে। (I6c92a) SpatialEnvironment-এskyboxপ্যারামিটারটির নাম পরিবর্তন করেimageBasedLightingAssetকরা হয়েছে যাতে এর উদ্দেশ্য আরও ভালোভাবে বোঝা যায় এবং এটিও স্পষ্ট করা হয়েছে যে জ্যামিতি প্যারামিটারে ভিজ্যুয়াল স্কাইবক্স টেক্সচার অন্তর্ভুক্ত করতে হবে। (I24d4a)- স্পেশিয়াল এন্টিটি এখন স্পেশিয়াল API লেভেল ১ ও ২-এ পিক্সেল-টু-মিটার ক্যালকুলেশনের জন্য একটি স্থিতিশীল ডিভাইস ডেনসিটি ব্যবহার করে, এর ফলে সিস্টেম ডিসপ্লে ডেনসিটিতে পরিবর্তন হলেও সাইজ একই থাকে। (I37051)
ভার্সন 1.0.0-alpha15
১৯ মে, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-alpha15 রিলিজ করা হয়েছে। 1.0.0-alpha15 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
Entity.dispose()এখন পাবলিক API হিসেবে সরিয়ে দেওয়া হয়েছে। Entity ইনস্ট্যান্সেdispose()কল করার পরিবর্তে, অ্যাপগুলিparent-কেnull-এ সেট করে এবং সেইসব ইনস্ট্যান্সের কোনও শক্তিশালী রেফারেন্স মুছে দিয়ে ইনস্ট্যান্সগুলিকে ক্লিন করা যায়। (I396c9)SoundEffectPool-এরset/clearOnLoadCompleteListenerপদ্ধতি মুছে দেওয়া হয়েছে। এর পরিবর্তেadd/removeLoadCompleteListenerব্যবহার করুন। (Iae78d)- সিনেমার
set/clearSpatialVisibilityChangedListener-এর জায়গায়add/removeSpatialVisibilityChangedListenerব্যবহার করা হয়েছে। (I67dff) - সব SceneCore
add/removeOnFooListenerপদ্ধতির নাম পরিবর্তন করেadd/removeFooListenerকরা হয়েছে, নাম থেকেOnসরিয়ে দেওয়া হয়েছে। (Ibe50b) - একাধিক একযোগে লিসনারদের সাপোর্ট করার জন্য
AnchorEntity.setOnOriginChangedListenerওAnchorEntity.setOnStateChangedListenerপদ্ধতিকেadd/removeFooListenerপদ্ধতি দিয়ে প্রতিস্থাপন করা হয়েছে। (I13749) AnchorEntity.State.TIMEDOUT-এর নাম পরিবর্তন করেState.TIMED_OUTকরা হয়েছে। (Id2b8d)- উন্নত নিরাপত্তা ও এক্সটেনসিবিলিটির জন্য Component API রিফ্যাক্টর করা হয়েছে।
Componentএখন একটি অ্যাবস্ট্রাক্ট ক্লাস। সরাসরি কল প্রতিরোধ করতেonAttach()ওonDetach()পদ্ধতি এখনprotected। কম্পোনেন্ট লাইফসাইকেল ম্যানেজ করতেEntity.addComponent()ওEntity.removeComponent()ব্যবহার করুন। (Id04e8) - SceneCore-এর
PlaneSemanticTypePlaneOrientationকনস্ট্যান্ট Ints থেকে কাস্টম টাইপে মাইগ্রেট করা হয়েছে। তাদেরANYকনস্ট্যান্ট সরিয়ে দেওয়া হবে, পরিবর্তে ক্লায়েন্টদের স্পষ্টভাবে সবকটি কাঙ্ক্ষিত কনস্ট্যান্টের তালিকা তৈরি করতে হবে অথবা নতুন.ALLঅপরিবর্তনীয় সেট কনস্ট্যান্ট ব্যবহার করতে হবে।AnchorEntityফ্যাক্টরি মেথড এখন একটি ভ্যালুর পরিবর্তে এই ধরনের একটি সেট গ্রহণ করে। (Ib1033) - পরীক্ষামূলক কাস্টম মেশ API-তে স্কেলেটাল অ্যানিমেশন (স্কিনিং) সংক্রান্ত সহায়তা যোগ করা হয়েছে। ডেভেলপাররা এখন
MeshEntityতৈরি করার সময়boneCountনির্দিষ্ট করে কাস্টম মেশ অ্যানিমেট করতে এবংMeshEntity.setBoneTransforms()ব্যবহার করে রিয়েল-টাইমে অ্যানিমেশন আপডেট করতে পারবেন। (Id8ba2, b/496692490) - পরীক্ষামূলক
CustomMeshAPI চালু করা হয়েছে। ডেভেলপাররা এখনCustomMesh,MeshBufferওMeshEntityব্যবহার করে তাদের সিনারিওতে প্রোগ্রাম অনুযায়ী 3D জিওমেট্রি তৈরি ও রেন্ডার করতে পারবেন। (I94617) androidx.xr.scenecore.SpatializerConstants.SourceType.SOURCE_TYPE_SOUND_FIELDসরানো হয়েছে। পরিবর্তেSourceType.SOUND_FIELDব্যবহার করুন। (Ia68b9)- স্পেশিয়াল অডিও কম্পোনেন্ট যোগ করা হচ্ছে:
PositionalAudioComponent,SoundEffectPoolComponentওSoundFieldAudioComponent(Ieda89) AnchorEntity.getAnchor-এর পরিবর্তেAnchorEntity.anchorব্যবহার করা হয়েছে এবং এখন ARCoreAnchor(I5c7c8) থেকেAnchorEntityতৈরি করা হলেAnchorরিটার্ন করবেActivityPanelEntity,GltfModelEntity,GroupEntity,PanelEntityএবংSurfaceEntityফ্যাক্টরি পদ্ধতিতেparentপ্যারামিটারের ডিফল্ট মানActivitySpaceথেকে পরিবর্তন করেnullকরা হয়েছে। কোনও এন্টিটিকে সিন গ্রাফের সাথে অ্যাটাচ করতে এবং এটিকে দৃশ্যমান হিসেবে রেন্ডার করতে, ডেভেলপারদের এখন ইনস্ট্যানসিয়েশন বাEntity.parent = ...(Ie7cc1) ব্যবহার করে স্পষ্টভাবে এর পেরেন্ট সেট করতে হবে
সমস্যার সমাধান
SceneCoreএখনEntityইনস্ট্যান্স ফ্যান্টম রিচেবল হয়ে গেলে তা অটোমেটিক রিক্লেইম করে নেয়, এর ফলে ডেভেলপারদের রিসোর্স খালি করার জন্যdispose()স্পষ্টভাবে ইনভোক করার প্রয়োজন হয় না। [Entity]-এর ইনস্ট্যান্স সঠিকভাবে রিক্লেইম করা হয়েছে কিনা তা নিশ্চিত করতে, ডেভেলপারদের এগুলি করা উচিত:- এর
parent-কেnullহিসেবে সেট করে এটিকে সিন গ্রাফ থেকে আলাদা করুন। - তাদের কোডে ইনস্ট্যান্সের সমস্ত শক্তিশালী রেফারেন্স ছেড়ে দিন।
- বিশেষ এন্টিটির ধরন সম্পর্কে মনে রাখবেন: যে এন্টিটিগুলিকে প্যারেন্ট করা যায় না (যেমন
AnchorEntity), সেগুলির ইনস্ট্যান্স ব্যবহার করার সময় ডেভেলপারদের অবশ্যই একটি শক্তিশালী রেফারেন্স বজায় রাখতে হবে। সব রেফারেন্স রিলিজ করা হলে, এইসব ইনস্ট্যান্স ফ্যান্টম রিচেবল হয়ে যাবে এবং অটোমেটিক রিক্লেইম করা হবে। (I83fe4)
- এর
- সব
SceneCoreলাইব্রেরির জন্য Proguard-এর নিয়ম সীমিত করা হয়েছে। (I98447)
পরিচিত সমস্যা
- ইনঅ্যাক্টিভ
ExoPlayerইনস্ট্যান্স সহEntity-এর সাথেPositionalAudioComponentঅ্যাটাচ করলে ক্র্যাশ হবে। ExoPlayer বন্ধ থাকাকালীনsetPointSourceParamsকল করবেন না বা স্পেশিয়াল অডিও কম্পোনেন্ট অ্যাটাচ/ডিটাচ করবেন না। পরবর্তী রিলিজের সময় এই সমস্যা সমাধান করা হবে।
ভার্সন 1.0.0-alpha14
৬ মে, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-alpha14 রিলিজ করা হয়েছে। 1.0.0-alpha14 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
TrackingStateওVpsAvailabilityResultandroidx.xr.arcore package-এ চলে গেছে এবংandroidx.xr.runtime-এর ধরন এখন পুরনো হয়ে গেছে। (Ic7930, b/480462213)Plane.Type-এর নাম পরিবর্তন করেPlaneTypeকরা হয়েছে। (I8c90c, b/482675376)Plane.Label-এর নাম পরিবর্তন করেPlaneLabelকরা হয়েছে। (Ic6b67, b/482675376)androidx.xr.runtime.FieldOfViewবন্ধ করে দেওয়া হয়েছে। পরিবর্তেandroidx.xr.runtime.math.FieldOfViewব্যবহার করুন। (Ia01a0, b/480233045)Matrix4.pose-এর নাম পরিবর্তন করেMatrix4.toPose()করা হয়েছে। 'পোজে' প্রপার্টি এখন বন্ধ করা হয়েছে। (I329b4, b/493383490)HandJointTypeএনুম ভ্যালুর নাম পরিবর্তন করা হয়েছে। (Ifbc83, b/482670596)- কাস্টম
Componentপ্রয়োগ করার অনুমতি দিতেComponent.onAttachওonDetach-কে পাবলিক API হিসেবে এক্সপোজ করুন। (I0ca1f) - স্পেশিয়াল অডিও কম্পোনেন্ট যোগ করা হচ্ছে (I39ddd, b/489421980, b/436642086, b/436642499)
PointSourceParamsথেকে Entity সরান। পরিবর্তে, এন্টিটি সরাসরিSpatialAudioTrack,SpatialSoundPoolএবংSpatialMediaPlayer-এর সাথে ব্যবহার করা হবে (Ib3685, b/489421980, b/436634048)DeviceTrackingMode.LAST_KNOWN-এর নাম পরিবর্তন করেSPATIAL_LAST_KNOWNকরা হয়েছে (পুরনো ফলব্যাক সহ), 3DoF ট্র্যাকিংয়ের জন্যINERTIAL_LAST_KNOWNযোগ করা হয়েছে এবংTrackingState-এTRACKING_DEGRADEDযোগ করা হয়েছে। (Ie661c, b/445466590)- পুরনো হয়ে গেছে
GroupEntity। শুধুমাত্র বেস Entity কার্যকারিতা সহ Entity পেতে,Entity.createকল করুন যা একটি Entity ইন্টারফেস রিটার্ন করবে। (I4c450, b/473867483) XrLogAPI যোগ করা হয়েছে। JetpackXR-এ লগিং চালু করতেXrLog.isEnabled-কেtrueহিসেবে সেট করুন এবং লগ লেভেল সেট করতেXrLog.Levelব্যবহার করুন। (I76a1f, b/463460895, b/487378441)
সমস্যার সমাধান
Scene.keyEntityএখন ডিফল্ট হিসেবেmainPanelEntityহয়ে গেছে। (I6a3ef)
ভার্সন 1.0.0-alpha13
২৫ মার্চ, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-alpha13 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha13-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
Session.createথেকেunscaledGravityAlignedActivitySpaceফ্ল্যাগ সরিয়ে দেওয়া হয়েছে।ActivitySpaceএখন সবসময় আনস্কেল করা এবং গ্র্যাভিটি-অ্যালাইন করা থাকে। (If6f11, b/458173423)GltfModelEntityথেকে বাতিল করাsetMaterialOverrideওclearMaterialOverrideফাংশন সরিয়ে দেওয়া হয়েছে, এখন সেগুলি আলাদা আলাদাGltfModelNode-এ কল করা হয়। (I2e5d2)PanelEntity-এtransformPixelCoordinatesToLocalPositionওtransformNormalizedCoordinatesToLocalPositionযোগ করা হয়েছে এবংVector3পজিশনের পরিবর্তে পোজ রিটার্ন করত এমন সমতুল্য পরীক্ষামূলক পদ্ধতি সরিয়ে দেওয়া হয়েছে। (Ib6960, b/460123106, b/458333591)SceneCore-এ glTF অ্যানিমেশন কন্ট্রোল করার জন্যGltfAnimationAPI যোগ করা হয়েছে। (I2c172, b/466065486, b/465819070, b/465818617)ScenePose.activitySpacePose-এর নাম পরিবর্তন করেScenePose.poseInActivitySpaceকরা হয়েছে (I8f175, b/427822261)- Scenecore প্রজেক্টেড রানটাইম ইমপ্লিমেন্টেশন যোগ করা হয়েছে (I9c4ab, b/476440158)
- প্রধান প্যানেল এন্টিটির সাইজ পরিবর্তন করার সময়, এটি
ActivitySpaceঅরিজিনে নিজেকে আবার পজিশন করতে পারে। প্যানেলটিকে ম্যানুয়ালি বা প্রোগ্রাম্যাটিক উপায়ে তার আসল লোকেশনে ফিরিয়ে আনা ছাড়া আর কোনও বিকল্প নেই। ভবিষ্যতের কোনও রিলিজে এই বাগ ঠিক করা হবে। (b/489427007). - কিছু ক্ষেত্রে,
SurfaceEntityও অন্যান্য নন-প্যানেল এন্টিটি ধরনের জন্যMovableComponent-এর অ্যাফোর্ডেন্স দেখা নাও যেতে পারে।MovableComponent.sizeস্পষ্টভাবে সেট করলে, অ্যাফোর্ডেন্স দেখা যাবে। ভবিষ্যতে রিলিজের সময় এই বাগ ঠিক করা হবে (b/490983469)।
ভার্সন 1.0.0-alpha12
২৫ ফেব্রুয়ারি, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-alpha12 রিলিজ করা হয়েছে। 1.0.0-alpha12 ভার্সনে এইসব কমিট রয়েছে।
পরিচিত সমস্যা
- অ্যাঙ্কর করা এন্টিটি কয়েক সেকেন্ড পরে অ্যাঙ্কর করা পজিশন থেকে অ্যাক্টিভিটি স্পেসের অরিজিনে স্ন্যাপ করতে পারে।
SurfaceEntityটি ইনস্ট্যান্স তৈরি করার সময় অ্যাপ ক্র্যাশ করতে পারে।androidx.xr.scenecore:scenecore-*:1.0.0-alpha13এবং পরবর্তী রিলিজগুলিতে এই সমস্যার সমাধান করা হয়েছে। প্রভাবিত অ্যাপগুলিকে লেটেস্ট ভার্সনে আপডেট করতে হবে।
API-তে পরিবর্তন
ActivitySpace.addOnSpaceUpdatedListenerওActivitySpace.removeOnSpaceUpdatedListener-এর নাম পরিবর্তন করেaddOnOriginChangedListenerওremoveOnOriginChangedListenerকরা হয়েছে।AnchorEntity.setOnSpaceUpdatedListener-এর নাম পরিবর্তন করেsetOnOriginChangedListenerকরা হয়েছে। (I5d8fb)FakeEntity-এ সর্বজনীন নাম প্রপার্টি যোগ করা হয়েছে এবংFakePanelEntity-এ সর্বজনীনভাবে দেখার সুবিধা দেওয়া হয়েছে। (Ifa1f9)
সমস্যার সমাধান
- নতুন সিস্টেম ইমেজে (I57d04) পিক্সেল ডেনসিটি সংক্রান্ত গণনা ঠিক করা হয়েছে
ভার্সন 1.0.0-alpha11
২৮ জানুয়ারি, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-alpha11 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha11-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
PerceivedResolutionResult.InvalidCameraView-এর নাম পরিবর্তন করেPerceivedResolutionResult.InvalidRenderViewpointকরা হয়েছে, কারণgetPerceivedResolutionAPI এখনCameraViewScenePose-এর পরিবর্তে ARCore-এরRenderViewpointAPI-এর উপর নির্ভর করে। এই নামটি নতুন প্রয়োগকে আরও ভালোভাবে তুলে ধরে। (I8c967, b/446989745, b/419311998)PanelEntity/SurfaceEntity.getPerceivedResolutionপদ্ধতিতে এখন ডেভেলপারদের দেওয়াRenderViewpointআর্গুমেন্ট হিসেবে নেওয়া হয়। আগে, রানটাইম, অনুভূত রেজোলিউশন গণনায় ব্যবহৃতRenderViewpoint-কে নির্বিচারে বেছে নিত। (I8c967, b/446989745, b/419311998)SpatialUser,ScenePose.HeadওScenePose.CameraViewসরিয়ে দেওয়া হয়েছে। এইসব API-এর কার্যকারিতা ARCore for Jetpack XR-এর মধ্যে থাকাArDeviceএবংRenderViewpointAPI-এর মাধ্যমে কভার করা হয়। ব্যবহারকারীর মাথা বা বাঁ বা ডান চোখেরScenePoseপেতে, ডেভেলপাররা ARCore API ব্যবহার করে প্রাপ্ত উপযুক্ত পোজের সাথেPerceptionSpace.getScenePoseFromPerceptionPoseব্যবহার করতে পারেন। (I2f69c, b/446989745)
ভার্সন 1.0.0-alpha10
৩ ডিসেম্বর, ২০২৫
androidx.xr.scenecore:scenecore-*:1.0.0-alpha10 রিলিজ করা হয়েছে। 1.0.0-alpha10 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
PanelEntity-এtransformPixelCoordinatesToPoseওtransformNormalizedCoordinatesToPoseযোগ করা হয়েছে (I462b3)SceneCore-এর লজিকের উপর ভিত্তি করেSceneCoreরানটাইমে একটি হেল্পার ক্লাস, Utils যোগ করা হয়েছে (I570b9)
সমস্যার সমাধান
- সেশন বন্ধ হয়ে গেলে এবং
SpatialModeChangeEventপেলে (If44e8) হতে পারে এমন সম্ভাব্য ক্র্যাশ সংক্রান্ত সমস্যার সমাধান করা হয়েছে - অ্যাক্টিভিটি থেকে বেরিয়ে আসার বা আবার প্রবেশ করার সময়
IllegalStateExceptionহতে পারে এমন একটি সমস্যার সমাধান করা হয়েছে। (Ibff1c)
ভার্সন 1.0.0-alpha09
১৯ নভেম্বর, ২০২৫
androidx.xr.scenecore:scenecore-*:1.0.0-alpha09 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha09-এ এইসব কমিট রয়েছে।
নতুন ফিচার
- পারসেপশন স্পেস অরিজিন পোজের কম্পোজিশন এবং পারসেপশন স্পেস অরিজিনের সাপেক্ষে পোজকে
রিপ্রেজেন্ট করে এমন একটি
ScenePoseপাওয়ার জন্য API যোগ করে। (I5b50a) getGravityAlignedPoseফাংশন যোগ করা হয়েছে। গ্র্যাভিটি অ্যালাইন করা পোজ, ঘূর্ণনের পিচ ও রোলকে উপেক্ষা করে। (I5ae21)AnchorEntity.Stateকনস্ট্যান্টের ধরন Int থেকে State সাবটাইপে পরিবর্তন করা হয়েছে। (Ib0c49)- Entity ইন্টারফেসে
getChildren()যোগ করা হয়েছে।MainPanelEntityলাইফসাইকেল আপডেট করা হয়েছে। (Ia69d6)
API-তে পরিবর্তন
PointerCaptureComponent.PointerCaptureStateকনস্ট্যান্টের ধরন Ints থেকে পরিবর্তন করেPointerCaptureStateসাবটাইপ করা হয়েছে। (Ic888a)Scene.spatialCapabilitiesএখন Int ফিল্ডের পরিবর্তেSet<SpatialCapability>ধরনের।SpatialCapabilityকনস্ট্যান্টের নাম পরিবর্তন করা হয়েছে। (I9c109)SurfaceEntityকনস্ট্যান্টের নাম পরিবর্তন করা হয়েছে এবং Int থেকেSurfaceEntityসাবটাইপে পরিবর্তন করা হয়েছে। (I419ed)SpatializerConstantকনস্ট্যান্টের নাম পরিবর্তন করা হয়েছে এবং Int থেকেSpatializerConstantসাবটাইপে পরিবর্তন করা হয়েছে। (Ia0e18)TextureSamplerকনস্ট্যান্টের নাম পরিবর্তন করা হয়েছে এবং Int থেকেTextureSamplerসাবটাইপে পরিবর্তন করা হয়েছে। (I44078)SpatialVisibilityকনস্ট্যান্টের ধরন Ints থেকেSpatialVisibilityসাবটাইপে পরিবর্তন করা হয়েছে। (I70739)ResizeEvent.ResizeStateকনস্ট্যান্টের ধরনগুলির নাম পরিবর্তন করা হয়েছে এবং Int থেকেResizeStateসাবটাইপে পরিবর্তন করা হয়েছে। (I384d5)InputEventকনস্ট্যান্টের ধরনগুলির নাম পরিবর্তন করা হয়েছে এবং সেগুলিকে Int থেকে পরিবর্তন করে তাদের সংশ্লিষ্ট এনক্লোজিং ধরন থেকে ইনহেরিট করা হয়েছে। (I82817)GltfModelEntity.AnimationStateকনস্ট্যান্টের ধরন Ints থেকে পরিবর্তন করেAnimationStateসাবটাইপ করা হয়েছে। (I24f4e)AlphaModeকনস্ট্যান্টের নাম পরিবর্তন করা হয়েছে এবং Int থেকেAlphaModeসাবটাইপে পরিবর্তন করা হয়েছে। (I27b56)Spaceধ্রুবক ধরনগুলি Ints থেকে Space সাবটাইপে পরিবর্তন করা হয়েছে। (I9255b)ScenePose.hitTestও সম্পর্কিত পদ্ধতি এখন কোনও ইন্টারসেকশন খুঁজে না পেলে, নালhitPositionসহHitTestResult-এর পরিবর্তেnullরিটার্ন করে।HitTestResult.hitPositionআর নাল হতে পারবে না। (I1400a)ActivityPose-এর রেফারেন্স পরিবর্তন করেScenePoseকরা হয়েছে। (I7fe43)
ভার্সন 1.0.0-alpha08
২২ অক্টোবর, ২০২৫
androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 রিলিজ করা হয়েছে। 1.0.0-alpha08 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ActivityPanelEntity.moveActivity-এর নাম পরিবর্তন করেtransferActivityরাখা হয়েছে (I273c5, b/430332856)
সমস্যার সমাধান
:xr:scenecore:scenecore-এর (I6ab65, b/447000520) ইমপ্লিমেন্টেশন ডিপেন্ডেন্সি হিসেবে:xr:scenecore:scenecore-spatial-renderingও:xr:scenecore:scenecore-spatial-coreযোগ করা হয়েছে- সেশন ধ্বংস করার পরে
session.sceneঅ্যাক্সেস করা হলে ব্যতিক্রম ঘটে। (I77e6f)
ভার্সন 1.0.0-alpha07
২৪ সেপ্টেম্বর, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha07, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07 ও androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha07-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
fixedAspectRatio-এর নাম পরিবর্তন করেisFixedAspectRatioEnabledকরা হয়েছে এবং এটিকে একটি বুলিয়ান প্রপার্টি করা হয়েছে (I5c4e8, b/440588971)Scenecoreনকল এখনxr:scenecore:scenecore-testingমডিউলে আছে। (Idd951)shouldAutoHideContent-এর নাম পরিবর্তন করেisAutoHideContentWhileResizingEnabledএবংshouldAlwaysShowOverlay-এর নাম পরিবর্তন করেisAlwaysShowOverlayEnabledকরা হয়েছে (I97c36, b/432335421)- পাঠযোগ্যতার জন্য
SceneCoreTextureSamplerকনস্ট্যান্ট আপডেট করা হয়েছে, যেমনTextureSampler.MinFilter.LINEARএখনTextureSampler.MIN_FILTER_LINEAR(Ib159c) setKeyEntityসেটারkeyEntityভেরিয়েবলে মার্জ করা হয়েছে।keyEntity-কেAnchorEntity-এর মতো সরানো যায় না এমন এন্টিটিতে সেট করলে, বুলিয়ান false রিটার্ন করার পরিবর্তেIllegalArgumentExceptionরিটার্ন করবে। (I62080, b/428721695, b/422215745)- সিনেমার
SpatialModeChangeListenerভেরিয়েবলটিsetSpatialModeChangedListenerদিয়ে পরিবর্তন করা হয়েছে। এতেSpatialModeChangedListener-এর পরিবর্তেConsumer<SpatialModeChangeEvent>ব্যবহার করা হয়।setSpatialModeChangedListenerএখন ঐচ্ছিকভাবে একটি Executor নিতে পারে। (I62080, b/428721695, b/422215745) ActivityPanelEntity.startActivityথেকেbundleপ্যারামিটার সরানো হয়েছে (I64344, b/430332856, b/430333040)SpatializerConstants.SOURCE_TYPE_BYPASS-এর নাম পরিবর্তন করেSpatializerConstants.SOURCE_TYPE_DEFAULTকরা হয়েছে। (Ifc7fe, b/422215565)SpatialSoundPool.PLAY_FAILEDধ্রুবক যোগ করা হয়েছে। (Ifc7fe, b/422215565)SpatialSoundPool.playপদ্ধতিতে ডিফল্ট আর্গুমেন্ট যোগ করা হয়েছে। (Ifc7fe, b/422215565)SpatialAudioTrackBuilder-এ সেটার থেকে রিটার্ন ভ্যালু সরিয়ে দেওয়া হয়েছে। (Ifc7fe, b/422215565)- SurfaceEntity পরিবর্তন
SurfaceEntity.CanvasShape-এর নাম পরিবর্তন করেShapeকরা হয়েছেSurfaceEntity.CanvasShape.Vr180Hemisphere-এর নাম পরিবর্তন করেHemisphereকরা হয়েছেSurfaceEntity.CanvasShape.Vr360Sphere-এর নাম পরিবর্তন করেSphereকরা হয়েছেSurfaceEntity.EdgeFeatheringParams.SmoothFeather-এর নাম পরিবর্তন করেRectangleFeatherকরা হয়েছেSurfaceEntity.EdgeFeathingParams.SolidEdge-এর নাম পরিবর্তন করেNoFeatheringকরা হয়েছেSurfaceEntity.ContentSecurityLevel-এর নাম পরিবর্তন করেSurfaceProtectionকরা হয়েছেSurfaceEntity.ContentSecurityLevel.{values}একটিSURFACE_PROTECTION_প্রিফিক্স যোগ করেছেন।SurfaceEntity.SuperSampling.{$values}একটিSUPER_SAMPLING_প্রিফিক্স যোগ করেছেনSurfaceEntity.StereoMode.{values}একটিSTEREO_MODE_প্রিফিক্স যোগ করেছেনSurfaceEntity.ContentColorMetadata.maxCLL-এর নাম পরিবর্তন করেmaxContentLightLevelকরা হয়েছে (I7eb5f, b/422216050, b/427529950)
launchActivity-এর নাম পরিবর্তন করেstartActivityকরা হয়েছে (I7db90, b/430332856)Scene.activitySpaceRootসরানো হয়েছে। পরিবর্তেScene.activitySpaceব্যবহার করুন। (I05ee8, b/378706624, b/422215745)configureBundleForFullSpaceModeLaunchওconfigureBundleForFullSpaceModeLaunchWithEnvironmentInherited-এর নাম পরিবর্তন করে যথাক্রমেcreateBundleForFullSpaceModeLaunchওcreateBundleForFullSpaceModeLaunchWithEnvironmentInheritedকরা হয়েছে এবং টপ-লেভেল মেথড হিসেবে LaunchUtils.kt ফাইলে সরিয়ে নিয়ে যাওয়া হয়েছে এবং প্রথম প্যারামিটার হিসেবে সেশন নেওয়া হয়েছে (I64a2c, b/437186050)GroupEntityফ্যাক্টরি এখন Entity-র পরিবর্তেGroupEntityধরন রিটার্ন করে। (I66042)
সমস্যার সমাধান
- ডিসপোজ করার পরে কোনও এন্টিটি ইনস্ট্যান্স ব্যবহার করা হলে
IllegalStateExceptionথ্রো করুন। (I90990, b/427314036, b/432063442)
ভার্সন 1.0.0-alpha06
১৩ আগস্ট, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha06, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06 ও androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha06-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
SceneCore-এরBaseEntityওBaseScenePoseAPI-এর উপর থেকে বিধিনিষেধ তুলে নিন (88c0ff6)
ভার্সন 1.0.0-alpha05
৩০ জুলাই, ২০২৫
androidx.xr.scenecore:scenecore-guava:1.0.0-alpha05, androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05 ও androidx.xr.scenecore:scenecore:1.0.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha05-এ এইসব কমিট রয়েছে।
নতুন ফিচার
- প্যানেল এন্টিটি ও
SurfaceEntities-তে পারসিভড রেজোলিউশন API যোগ করা হয়েছে। (I118f6) PerceivedResolutionHSM-এ অ্যাক্টিভিটির মূল প্যানেলের অনুভূত রেজোলিউশন মনিটর করার জন্য Scene.kt-তে কলব্যাক পদ্ধতি যোগ করা হয়েছে। (I58084)SurfaceEntity- তৈরি করার সময় সুপার স্যাম্পেলিংয়ের অনুরোধ করার জন্য অ্যাপ্লিকেশন সংক্রান্ত সহায়তা যোগ করা হয়েছে। এটি অ্যান্টি-এলাইজিংয়ের জন্য সুপার স্যাম্পেলিং ফিল্টার ব্যবহার করার অনুমতি দেয়। (I06913)ActivitySpace-এrecommendedContentBoxInFullSpaceপ্রপার্টি যোগ করা হয়েছে। ফুল স্পেস মোডে থাকলে, কন্টেন্ট প্লেস করার জন্য এটি একটি সাজেস্ট করা বক্স রিটার্ন করে। (I4cd6f)- মুভেবল মডিফায়ারের জন্য ওভারলোড করা কনস্ট্রাক্টর প্রদান করা হয়েছে যা অ্যাঙ্করিংয়ের অনুমতি দেয়। (Ic0c70)
API-তে পরিবর্তন
এই রিলিজের জন্য SceneCore-এ API-তে অনেক পরিবর্তন করা হয়েছে। বিভিন্ন ক্লাসকে নতুন নাম দেওয়া হয়েছে এবং/অথবা আলাদা আলাদা মডিউলে সরানো হয়েছে এবং বেশিরভাগ গেটার/সেটার মেথডকে Kotlin প্রপার্টি দিয়ে প্রতিস্থাপন করা হয়েছে। আমাদের প্রথম বিটা রিলিজ পর্যন্ত API-তে কিছু পরিবর্তন হতে পারে, তবে সেগুলি খুব বেশি বা বিঘ্ন সৃষ্টিকারী হবে না।
- নিম্নলিখিত ক্লাস ও ইন্টারফেসের নাম পরিবর্তন করা হয়েছে এবং/অথবা সেগুলি সরানো হয়েছে:
androidx.xr.scenecore.PixelDimensionsথেকেandroidx.xr.runtime.math.IntSize2d;androidx.xr.scenecore.Dimensionsথেকেandroidx.xr.runtime.math.FloatSize3d;androidx.xr.scenecore.ActivityPoseথেকেScenePose,androidx.xr.scenecore.ContentlessEntityথেকেGroupEntity,androidx.xr.scenecore.PlaneTypeথেকেPlaneOrientation;androidx.xr.scenecore.PlaneSemanticথেকেPlaneSemanticType. (Ifd405)(I3b622) (If534d) Scene-এর প্রপার্টির জন্য একাধিক সেটার প্রাইভেট করা হয়েছে;SceneCoreক্লায়েন্টদের দ্বারা এগুলি পরিবর্তন করার কথা নয়:activitySpace,activitySpaceRoot,mainPanelEntity,perceptionSpace,spatialCapabilities,spatialEnvironmentএবংspatialUser। (I2f506)- এন্টিটিতে: নিম্নলিখিত বিষয়গুলিকে প্রপার্টিতে পরিবর্তন করা হয়েছে:
get/setParent(),setContentDescription;Entity.is/setHidden()শীঘ্রই বন্ধ করা হবে, এর পরিবর্তেEntity.is/setEnabledব্যবহার করুন। (Ibc4c6) androidx.xr.scenecore.BasePanelEntityক্লাস সরিয়ে দেওয়া হয়েছে, এর পরিবর্তে সরাসরিPanelEntityব্যবহার করুন।PanelEntity-এর জন্য গেটার ও সেটারকে প্রপার্টি দিয়ে পরিবর্তন করা হয়েছে।Float3dSizeথেকেFloat2dSize-এPanelEntity.sizeপ্রপার্টি পরিবর্তন করা হয়েছে। বন্ধ হয়ে যাওয়াandroidx.xr.scenecore.PanelEntity.getPixelDimensionsপদ্ধতি সরিয়ে দেওয়া হয়েছে, এর পরিবর্তেgetSizeInPixelsব্যবহার করুন। (Icc174)androidx.xr.scenecore.OnSpaceUpdatedListener-এর জায়গায়Runnableব্যবহার করা হয়েছে। (I19308)SpatialUser.getCameraViews()-এর পরিবর্তে একটি প্রপার্টি ব্যবহার করা হয়েছে। (Ib0cc5)ExrImageওGltfModel:-এর জন্যcreateপদ্ধতি পরিবর্তন করে সাসপেন্ড ফাংশন করা হয়েছে;String-এর পরিবর্তেUriবাPathগ্রহণ করার জন্য ক্রিয়েট প্যারামিটার পরিবর্তন করা হয়েছে। (Id8883) (I0d247), (I25706)SpatialEnvironment.requestFullSpaceModeওSpatialEnvironment.requestHomeSpaceMode-কে 'সিন' বিভাগে সরানো হয়েছে, যেমনsession.scene.spatialEnvironment.requestFullSpaceMode()-এর পরিবর্তেsession.scene.requestFullSpaceMode()ব্যবহার করুন।addOnPassthroughOpacityChangedListenerওaddOnSpatialEnvironmentChangedListener-এ এখন ওভাররাইড আছে যা ঐচ্ছিক Executor গ্রহণ করে। (I12fe0) (I6b21e)- নিম্নলিখিত পুরনো হয়ে যাওয়া
SpatialEnvironmentপদ্ধতি সরিয়ে দেওয়া হয়েছে:togglePassthrough,setPassthrough,setPassthroughOpacity,getPassthroughMode,getPassthroughOpacity,setSkyboxএবংsetGeometry. এছাড়াও, বাতিল করা ক্লাসSpatialEnvironment.PassthroughMode(I927bd) (I927bd) (I927bd) সরিয়ে দেওয়া হয়েছে - নিম্নলিখিত
SpatialEnvironmentগেটার ও সেটারকে Kotlin প্রপার্টি দিয়ে পরিবর্তন করা হয়েছে:getCurrentPassthroughOpacity(),get/setPassthroughOpacityPreference(),get/setSpatialEnvironmentPreference(),isSpatialEnvironmentPreferenceActive()(I33a7b) (Ie06e2) (Ie06e2) SpatialEnvironmentPreference.preferredPassthroughOpacity-এর ধরনFloat?থেকেFloat-এ পরিবর্তন করা হয়েছে। এটি আর ফাঁকা মান গ্রহণ করে না। এর পরিবর্তে,SpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCEব্যবহার করে বোঝানো হয় যে কোনও অস্বচ্ছতা সংক্রান্ত পছন্দ নেই। (I40107)- create পদ্ধতিতে
windowBoundsPxপ্যারামিটারকেpixelDimensionsএবং এর ধরন Rect থেকেIntSize2dহিসেবে আপডেট করা হয়েছে। (I1926e) SpatialEnvironmentকনস্ট্রাক্টর এখন ইন্টার্নাল (I75a51)- কম্প্যানিয়ন অবজেক্ট
SpatialPointerIcon.NONEওSpatialPointerIcon.CIRCLE(I416d2) দিয়ে ক্লাসSpatialPointerIconNoneওSpatialPointerIconCircleক্লাস পরিবর্তন করা হয়েছে SpatialPointerComponent-এরSpatialPointerIconআর নাল হতে পারবে না। সিস্টেম ডিফল্ট পয়েন্টার আইকন ব্যবহার করা উচিত তা বোঝাতে null-এর পরিবর্তেSpatialPointerIcon.DEFAULTব্যবহার করুন। (I416d2)androidx.xr.scenecore.AnchorEntity.getState()-এর পরিবর্তে রিড-অনলি প্রপার্টি ব্যবহার করা হয়েছে। স্বচ্ছতার জন্যAnchorEntity.create()পদ্ধতিতে প্যারামিটারের নাম পরিবর্তন করা হয়েছে।AnchorEntity-এর লিসনার সেট ও যোগ করার পদ্ধতিতে, ট্রেলিং ল্যাম্বডা চালু করার জন্য লিসনারকে ফাইনাল আর্গুমেন্টে সরানো হয়েছে।AnchorEntity-এর জন্যandroidx.xr.scenecore.OnStateChangedListener-এর পরিবর্তেConsumer<AnchorEntity.State>ব্যবহার করা হয়েছে। (I472e0)GltfModelEntity.getAnimationState()এখন একটি প্রপার্টি। (I10b29)ActivitySpace.getBounds()-এর পরিবর্তে একটি প্রপার্টি ব্যবহার করা হয়েছে।ActivitySpace.addBoundsChangedListener-এর নাম পরিবর্তন করেActivitySpace.addOnBoundsChangedListenerকরা হয়েছে।ActivitySpace.setOnSpaceUpdatedListener-এর পরিবর্তে যোগ করা/সরানো পদ্ধতি ব্যবহার করা হয়েছে। (I4c956)AnchorPlacement: planeTypeFilter-এর নাম পরিবর্তন করেanchorablePlaneOrientationsকরা হয়েছে,planeSemanticFilter-এর নাম পরিবর্তন করেanchorablePlaneSemanticTypesকরা হয়েছে।AnchorEntityবাActivitySpace-এMovableComponentযোগ করলে false রিটার্ন করে,MoveListener-এর নাম পরিবর্তন করেEntityMoveListener shouldDisposeParentAnchorকরা হয়েছে,EntityMoveListener shouldDisposeParentAnchor-এর নাম পরিবর্তন করেdisposeParentOnReAnchor systemMovableকরা হয়েছে,createফাংশন থেকেcreeateCustomMovable,createSystemMovableওcreateAnchorable-এর জন্য সরিয়ে দেওয়া হয়েছে (If11c4)SurfaceEntity.featherRadiusX/Yসরিয়ে দেয় এবংEdgeFeatheringParamsক্লাসের ধারণা যোগ করে। (Ic78fc)PanelEntity.enablePanelDepthTest()মেথড পরিবর্তন করেpanelClippingConfigপ্রপার্টি করা হয়েছে। ডেপথ-টেস্টিং চালু করতেScene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true)হিসেবে সেট করুন অথবা এটি বন্ধ করতেPanelClippingConfig(isDepthTestEnabled = false)হিসেবে সেট করুন। (I0cbe0)Scene.mainPanelEntityএখনPanelEntity-এর পরিবর্তেMainPanelEntityধরনের (I7125a)- Scene-এর
setFullSpaceModeপদ্ধতির নাম পরিবর্তন করেconfigureBundleForFullSpaceModeLaunchএবংsetFullSpaceModeWithEnvironmentInheritedপদ্ধতির নাম পরিবর্তন করেconfigureBundleForFullSpaceModeLaunchWithEnvironmentInheritedকরা হয়েছে। (I0cbe0) (I0cbe0) SpatialVisibility-এর UNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV এবং WITHIN_FOV ভ্যালুর নাম পরিবর্তন করে যথাক্রমে SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW এবং SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW রাখা হয়েছে (Ie7e8c)SpatialVisibilityclass-এর পরিবর্তে const Int ভ্যালু সহ পাবলিক অবজেক্ট ব্যবহার করা হয়েছে।setSpatialVisibilityChangedListenerএখনConsumer<SpatialVisibility>-এর (Ie7e8c) পরিবর্তেConsumer<Int>গ্রহণ করেPointerCaptureComponentকনস্ট্যান্টের নাম পরিবর্তন করেPointerCaptureComponent.PointerCaptureStateঅবজেক্টে (I9c7ac) সরানো হয়েছেPointerCaptureComponents' StateListener-এর জায়গায়Consumer<Int>ব্যবহার করা হয়েছে। (I9c7ac)InputEventListener-এর পরিবর্তেConsumer<InputEvent>ব্যবহার করা হয়েছে (I9c7ac)setPreferredAspectRatioScene ক্লাস থেকেSpatialWindowঅবজেক্টে সরানো হয়েছে এবং সেশনকে প্রথম প্যারামিটার হিসেবে নেয়। (I7b717)Entity.setHidden()-এর পরিবর্তেEntity.setEnabled()এবংEntity.isHidden()-এর পরিবর্তেEntity.isEnabled()ব্যবহার করা হয়েছে।setHidden(false),setEnabled(true)ওisHidden() == !isEnabled()-এর সমান। (Icf0de)Entity.contentDescription-এর ধরন String থেকে পরিবর্তন করেCharSequenceকরা হয়েছে। (Ie59be)Session.createওSession.configureএখন পর্যাপ্ত অনুমতি না দেওয়া হলেSessionCreatePermissionsNotGrantedবাSessionConfigurePermissionsNotGrantedরিটার্ন করার পরিবর্তেSecurityExceptionথ্রো করে। (I7c488)ResizableComponent.createএখনConsumer<ResizeEvent> ResizeEventListenerপ্রয়োজনConsumer<ResizeEvent> ResizableComponent.sizeদিয়ে পরিবর্তন করা হয়েছেResizableComponent.affordanceSize ResizableComponent.minimumSizeনাম পরিবর্তন করেResizableComponent.minimumEntitySize ResizableComponent.maximumSizeকরা হয়েছেResizableComponent.maximumEntitySizeনাম পরিবর্তন করেResizableComponent.autoHideContentকরা হয়েছেResizableComponent.shouldAutoHideContentResizableComponent.forceShowResizeOverlayনাম পরিবর্তন করেResizableComponent.shouldAlwaysShowOverlayকরা হয়েছে (I97a2d)androidx.xr.scenecoreওandroidx.xr.compose-এর জন্যminSDKকমিয়ে ২৪ করা হয়েছে। XR প্যাকেজের জন্য এখনও রানটাইমে API 34 প্রয়োজন। (I17224)- সব Jetpack XR প্যাকেজে
RequiresApi(34)বিধিনিষেধ সরিয়ে দেওয়া হয়েছে। এই বিধিনিষেধটি অপ্রয়োজনীয় ছিল কারণ Jetpack XR বর্তমানে শুধুমাত্র API লেভেল 34+ সহ ডিভাইসে উপলভ্য। (Iae0f8) - মূল
SceneCoreআর্টিফ্যাক্টে (xr:scenecore:scenecore) শুধুমাত্র Kotlin-স্টাইলের অ্যাসিঙ্ক API থাকবে। মানানসই API অ্যাক্সেস করার জন্য Java ডেভেলপাররাxr:scenecore:scenecore-guavaলাইব্রেরির উপর নির্ভর করতে পারেন। (If221b) - Kotlin 2.0-এর সাথে রিলিজ করা প্রোজেক্ট ব্যবহার করার জন্য KGP 2.0.0 বা এর পরের যেকোনও ভার্সন প্রয়োজন (Idb6b5)
- এই লাইব্রেরি এখন JSpecify nullness annotations ব্যবহার করে, যা হল টাইপ-ইউজ। Kotlin ডেভেলপারদের সঠিক ব্যবহার নিশ্চিত করতে নিম্নলিখিত কম্পাইলার আর্গুমেন্ট ব্যবহার করা উচিত:
-Xjspecify-annotations=strict(এটি Kotlin কম্পাইলারের 2.1.0 ভার্সন থেকে ডিফল্ট হিসেবে শুরু হয়) (Ia8420) ListenableFutureরিটার্ন করে এমন সব অ্যাসিঙ্ক পদ্ধতি Kotlin সাসপেন্ড ফাংশন দিয়ে পরিবর্তন করা হয়েছে। যেসব Java ডেভেলপার Kotlin সাসপেন্ড ফাংশনের পরিবর্তেListenableFuture-ভিত্তিক অ্যাসিঙ্ক পদ্ধতি ব্যবহার করতে চান, তাদের এখন:xr:scenecore-scenecore-guava-এ এক্সটেনশন ফাংশন ব্যবহার করতে হবে। যেমন,GuavaExrImage-এ Guava-এর সমতুল্য ExrImage অ্যাসিঙ্ক ফাংশন,GuavaScenePose-এ Guava-এর সমতুল্যScenePoseঅ্যাসিঙ্ক ফাংশন,GuavaGltfModel-এGuava-equivalent GltfModelঅ্যাসিঙ্ক ফাংশন ইত্যাদি থাকে। (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)
সমস্যার সমাধান
- মিনিফাই করা ক্লায়েন্টের জন্য
AbstractMethodErrorআটকাতে Jetpack XR ScenecoreProGuardনিয়ম আপডেট করা হয়েছে। (I91a01) - Jetpack XR-এর জন্য Proguard মিনিফিকেশন কাজ করে এমন অতিরিক্ত সমাধান
SceneCore(I4f47e) - একটি সমস্যার সমাধান করা হয়েছে যেখানে
InteractableComponent,hitPosition-এরInputEvent-এর HitInfo-তে থাকলে ক্র্যাশ হতে পারে, যদি সিস্টেম থেকে পাওয়াhitPositionনাল হয় (I7a695) - Config *Mode vals-এর নাম পরিবর্তন করে সেগুলির আচরণ প্রতিফলিত করা হয়েছে। (I6d247)
SceneCoreTestApp-এ FOV ওHitTestসংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I2c51e)SpatialCapabilities.hasCapability()-এ বাগ সমাধান করা হয়েছে যেখানে বিটওয়াইজ OR-এর সাথে পাস করা যেকোনও ক্ষমতা সত্য হলে, শুধুমাত্র সব ক্ষমতা সত্য হলেই সত্য রিটার্ন করার পরিবর্তে সত্য রিটার্ন করত। (I2cd40)SurfaceEntity.StereoMode.TOP_BOTTOMআপডেট করে বাঁদিকের চোখে উপরের ম্যাপ ও ডানদিকের চোখে নিচের ম্যাপ দেখানো হয়। (I4ae68)
ভার্সন 1.0.0-alpha04
৭ মে, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha04 ও androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha04-এ এইসব কমিট রয়েছে।
নতুন ফিচার
- এম্বেড করা অ্যাক্টিভিটি নেই এমন প্যানেল এন্টিটিতে এখন ব্যাকহ্যান্ডেলিং কাজ করবে। ব্যাকহ্যান্ডলিং কাজ করার জন্য আপনাকে Android ম্যানিফেস্টে
android:enableOnBackInvokedCallback= "true"উল্লেখ করতে হবে। StereoSurfaceEntityএখন দুটি নতুনStereoModeভ্যালুর মাধ্যমে MV-HEVC প্লেব্যাক সাপোর্ট করে: MULTIVIEW_LEFT_PRIMARY এবং MULTIVIEW_RIGHT_PRIMARY.PanelEntity.setSizeওPanelEntity.getSizeএখন প্যারেন্ট স্পেসে সাইজ রিটার্ন করে।Entity.setPose,Entity.getPose,Entity.setScale,Entity.getScale,Entity.setAlphaএবংEntity.getAlphaএখন একটি নতুন প্যারামিটারrelativeToনেয়, যা বিভিন্ন স্পেসের সাথে সম্পর্কিত মান পেতে/সেট করতে দেয়। কাজ করে এমন ভ্যালু হল প্যারেন্ট, অ্যাক্টিভিটি ও রিয়েল ওয়ার্ল্ড স্পেস এবং এই প্যারামিটারের ডিফল্ট ভ্যালু হল প্যারেন্ট।SessionExt.kt-এ স্পেশিয়াল ভিজিবিলিটি কলব্যাক এক্সটেনশন পদ্ধতি যোগ করা হয়েছে, যাতে ব্যবহারকারীর ফিল্ড অফ ভিউয়ের মধ্যে বা বাইরে সিন কন্টেন্ট কখন সরছে তা মনিটর করা যায়।SpatialAudioTrack-এsetPointSourceParamsযোগ করা হয়েছে, এর ফলে ট্র্যাক তৈরি হওয়ার পরে প্যারামিটার আপডেট করা যাবে।ScenecoreAPI-এর রেফারেন্স সহ নতুন ক্লাস, Scene যোগ করা হয়েছে। সেশন এক্সটেনশন প্রপার্টি হিসেবে সিন অ্যাক্সেস করা যাবে।SessionExt-এর মধ্যে থাকা ফাংশন Scene-এ সরানো হয়েছে, তাই ইমপোর্ট অ্যাডজাস্ট করতে হবে; যেমন,SessionExt.getScene(session)।addSpatialCapababilitiesChangedListenerবনামSessionExt.addSpatialCapabilitiesChangedListener.ActivityPose.hitTestAsyncযোগ করা হয়েছে, এর ফলে ভার্চুয়াল কন্টেন্টের বিরুদ্ধেhitTestচালু করা হয়েছে।- নতুন কম্পোনেন্ট টাইপ
SpatialPointerComponentযোগ করা হয়েছে, এর ফলে ক্লায়েন্টরা পয়েন্টারের জন্য রেন্ডার করা আইকন নির্দিষ্ট করতে বা আইকন বন্ধ করতে পারবেন। এই কম্পোনেন্ট বর্তমানে শুধুমাত্রPanelEntityটি ইনস্ট্যান্সের সাথে অ্যাটাচ করা যাবে। - নতুন
PanelEntityফ্যাক্টরি চালু করা হচ্ছে, যা মিটার বা পিক্সেল, যেকোনও একটিতে প্যানেলের ডাইমেনশন নেয়। পুরনোPanelEntityফ্যাক্টরি থেকে প্যানেলের জন্য দুটি ডাইমেনশন টাইপ প্যারামিটার সরিয়ে দেওয়া হয়েছে।
API-তে পরিবর্তন
- সব Jetpack XR প্যাকেজে
RequiresApi(34)বিধিনিষেধ সরিয়ে দেওয়া হয়েছে। এই বিধিনিষেধটি অপ্রয়োজনীয় ছিল কারণ Jetpack XR বর্তমানে শুধুমাত্র API লেভেল 34+ সহ ডিভাইসে উপলভ্য। (Iae0f8) - Kotlin 2.0-এর সাথে রিলিজ করা প্রোজেক্ট ব্যবহার করার জন্য KGP 2.0.0 বা এর পরের যেকোনও ভার্সন প্রয়োজন (Idb6b5)
PermissionHelperক্লাস সরিয়ে দেওয়া হয়েছে।PanelEntity.getPixelDensityবন্ধ করা হয়েছে।PanelEntity.setPixelDimensionsওPanelEntity.getPixelDimensionসরিয়ে দেওয়া হয়েছে,setSizeInPixelsওgetSizeInPixelsদিয়ে রিপ্লেস করা হয়েছে।Entity.getActivitySpaceAlphaভাষা সরানো হয়েছে।Entity.getAlpha(Space.Activity)দিয়ে পরিবর্তন করা যেতে পারে।Entity.getWorldSpaceScaleভাষা সরানো হয়েছে।Entity.getScale(Space.REAL\_WORLD)দিয়ে পরিবর্তন করা যেতে পারে।SceneCore-এর সেশন ক্লাস XR রানটাইমের সেশনের জন্য মুছে দেওয়া হয়েছে।StereoSurfaceEntity-এর নাম পরিবর্তন করেSurfaceEntityকরা হয়েছে।Entity.setSizeওEntity.getSizeসরিয়ে দেওয়া হয়েছে এবং একই পদ্ধতিPanelEntity-এ যোগ করা হয়েছে।PointSourceAttributes-এর নাম পরিবর্তন করেPointSourceParamsকরা হয়েছে।SpatializerConstants.SOURCE\_TYPE\_BYPASS-এর নাম পরিবর্তন করেSpatializerConstants.SOURCE\_TYPE\_DEFAULTকরা হয়েছে।PointSourceParamsএন্টিটি পাবলিক অ্যাক্সেস থেকে ইন্টার্নাল অ্যাক্সেসে পরিবর্তন করা হয়েছে।AnchorEntity.create-এর জন্য এখনSession.configure()-এPlaneTrackingModeকনফিগার করতে হবে।SpatialUserAPI-কে এখনSession.configure()-এHeadTrackingModeকনফিগার করতে হবে।ResizableComponentঅ্যাটাচ করা না থাকলে, এটি ERROR-লেভেল লগের পরিবর্তে INFO-লেভেল লগ দেবে।- Fov ক্লাস এখন একটি সাধারণ Kotlin ক্লাস।
Entity.kt-কে ভাগ করে প্রতিটি কনক্রিট এন্টিটি টাইপকে তার নিজস্ব ফাইলে রাখুন।- নতুন
PanelEntityতৈরি করার সময়, বেশিরভাগ ভিউকেFrameLayout-এর সাথে আবার প্যারেন্ট করা হবে। এটি স্পেশিয়াল প্যানেলের সাথেLayoutInspectorব্যবহার করার সুবিধা দেয়। - অ্যাপ ডিবাগিংয়ে সাহায্য করার জন্য বর্তমানে ব্যবহৃত
XrExtensionsইনস্ট্যান্স এখন প্ল্যাটফর্মে রেজিস্টার করা হয়েছে।
সমস্যার সমাধান
MovableComponentওAnchorPlacementসহPanelEntityসরানো হলে ক্র্যাশ হওয়া আটকাতে একটি সমাধান যোগ করা হয়েছেResizableComponent,onResizeStartকলব্যাকে পুরনো সাইজ প্রদান করছিল, সেই সমস্যার সমাধান করা হয়েছে।JxrPlatformAdapterAxr-এরdispose()একাধিকবার কল করা হলে ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে।
ভার্সন 1.0.0-alpha03
২৬ ফেব্রুয়ারি, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha03 ও androidx.xr.scenecore:scenecore-testing:1.0.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha03-এ এইসব কমিট রয়েছে।
নতুন ফিচার
- Jetpack XR কোডের জন্য Proguard মিনিফিকেশন এখন কাজ করে
সমস্যার সমাধান
- Jetpack XR SceneCore-এর জন্য Proguard মিনিফিকেশন কাজ করে এমন অতিরিক্ত সমাধান (I4f47e)
- মিনিফাই করা ক্লায়েন্টের জন্য
AbstractMethodErrorআটকাতে Jetpack XR ScenecoreProGuardনিয়ম আপডেট করা হয়েছে। (I91a01)
ভার্সন 1.0.0-alpha02
১২ ফেব্রুয়ারি, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha02 ও androidx.xr.scenecore:scenecore-testing:1.0.0-alpha02 রিলিজ করা হয়েছে। 1.0.0-alpha02 ভার্সনে এইসব কমিট রয়েছে।
1.0.0-alpha02 ভার্সনের আগে তৈরি করা অ্যাপের উপর প্রভাব ফেলে এমন আসন্ন ব্রেকিং পরিবর্তন
- ফ্যাক্টরি পদ্ধতি
Sessionক্লাস থেকে সরিয়ে প্রতিটি সংশ্লিষ্ট ধরনের কম্প্যানিয়ন পদ্ধতিতে নিয়ে যাওয়া হয়েছে:Session.createActivityPanelEntity(Dimensions, String, Activity, Pose)মুছে দেওয়া হয়েছে এবংActivityPanelEntity.create(Session, Dimensions, String, Pose)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createAnchorEntity(Anchor)মুছে দেওয়া হয়েছে এবংAnchorEntity.create(Session, Anchor)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createAnchorEntity(Dimensions, Int, Int, Duration)মুছে দেওয়া হয়েছে এবংAnchorEntity.create(Session, Dimensions, Int, Int, Duration)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createEntity(String, Pose)মুছে দেওয়া হয়েছে এবংContentlessEntity.create(Session, String, Pose)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createExrImageResource(String)মুছে দেওয়া হয়েছে এবংExrImage.create(Session, String)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createGltfEntity(GltfModel, Pose)মুছে দেওয়া হয়েছে এবংGltfModelEntity.create(Session, GltfModel, Pose)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createGltfModelResource(String)মুছে দেওয়া হয়েছে এবংGltfModel.create(Session, String)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createInteractableComponent(Executor, InputEventListener)মুছে দেওয়া হয়েছে এবংInteractableComponent.create(Session, Executor, InputEventListener)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean)মুছে দেওয়া হয়েছে এবংMovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createPanelEntity(View, Dimensions, Dimensions, String, Pose)মুছে দেওয়া হয়েছে এবংPanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createResizableComponent(Dimensions, Dimensions)মুছে দেওয়া হয়েছে এবংResizableComponent.create(Session, Dimensions, Dimensions)দিয়ে প্রতিস্থাপন করা হয়েছেSession.createStereoSurfaceEntity(Int, Dimensions, Pose)মুছে দেওয়া হয়েছে এবংStereoSurface.create(Session, Int, Dimensions, Pose)দিয়ে প্রতিস্থাপন করা হয়েছে
- নিম্নলিখিত বাতিল করা পদ্ধতিগুলি সরিয়ে দেওয়া হয়েছে:
Session.canEmbedActivityPanel(Activity)-কে মোছা হয়েছে৷ পরিবর্তেgetSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY)ব্যবহার করুন।Session.hasSpatialCapability(Int)-কে মোছা হয়েছে৷getSpatialCapabilities().hasCapability()-এর পরিবর্তে এটি ব্যবহার করা হয়, কারণgetSpatialCapabilities()একটিSpatialCapabilitiesঅবজেক্ট রিটার্ন করে। এর ফলে স্পেস সংক্রান্ত ক্ষমতা আছে কিনা তা আরও কম্পার্টমেন্টলাইজড উপায়ে চেক করা যায়।Session.requestFullSpaceMode()মুছে দেওয়া হয়েছে এবংSpatialEnvironment.requestFullSpaceMode()দিয়ে প্রতিস্থাপন করা হয়েছেSession.requestHomeSpaceMode()মুছে দেওয়া হয়েছে এবংSpatialEnvironment.requestHomeSpaceMode()দিয়ে প্রতিস্থাপন করা হয়েছে
Session.setFullSpaceMode(Bundle)ওSession.setFullSpaceModeWithEnvironmentInherited(Bundle)এক্সটেনশন ফাংশনে সরানো হয়েছে। অ্যাক্সেস করার জন্য ডেভেলপার ফাইলগুলিতে নতুন ইমপোর্ট যোগ করতে হবে:import androidx.xr.scenecore.setFullSpaceModeimport androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
Session.setPreferredAspectRatio(Activity, Float)এক্সটেনশন ফাংশনে সরানো হয়েছে। অ্যাক্সেস করার জন্য ডেভেলপার ফাইলগুলিতে নতুন ইমপোর্ট যোগ করতে হবে:import androidx.xr.scenecore.setPreferredAspectRatio
Session.getEntitiesOfType(Class<out T>)ওSession.getEntityForRtEntity(RtEntity)এক্সটেনশন ফাংশনে সরানো হয়েছে। অ্যাক্সেস করার জন্য ডেভেলপার ফাইলগুলিতে নতুন ইমপোর্ট যোগ করতে হবে:import androidx.xr.scenecore.getEntitiesOfTypeimport androidx.xr.scenecore.getEntityForRtEntity
Session.unpersistAnchor(Anchor)মুছে ফেলা হয়েছেSession.createPersistedAnchorEntity(UUID)মুছে ফেলা হয়েছে
পরিচিত সমস্যা
- প্যানেলটি পরবর্তীকালে না সরানো পর্যন্ত
PanelEntity.setCornerRadius()এবংActivityPanelEntity.setCornerRadius()কার্যকর নাও হতে পারে, প্যানেলটিকে তার বর্তমান অবস্থানে সরিয়ে এটি কমানো যেতে পারে ActivitySpace-এBoundsChangedকল করা হলে, কিছুActivityPoseসঠিকভাবে আপডেট নাও হতে পারে। পরেরOnSpaceUpdatedকলেActivitySpace-এ এটি আপডেট করা হবে
ব্রেকিং ও আচরণগত পরিবর্তন
- প্যানেলের প্রস্থ বা উচ্চতা ৩২dp-এর থেকে ছোট হলে
PanelEntityওActivityPanelEntity-এর ডিফল্ট কর্নার রেডিয়াস ৩২dp বা তার থেকে ছোট হবে
নতুন API ও ক্ষমতা
StereoSurface.CanvasShape-এর মাধ্যমেSphericalওHemisphericalক্যানভাস তৈরি করে ইমারসিভ মিডিয়া রেন্ডার করা যায়।StereoSurfaceEntity.create()এখনCanvasShapeপ্যারামিটার গ্রহণ করে। (এই প্যারামিটারটি বর্তমানে উপেক্ষা করা হচ্ছে, তবে ভবিষ্যতের রিলিজে ব্যবহার করা হবে)StereoSurfaceEntity.create()আরDimensionsপ্যারামিটার নেয় না।CanvasShapeসেট করার মাধ্যমে অ্যাপ্লিকেশনকে ক্যানভাসের সাইজ নিয়ন্ত্রণ করতে হবেStereoSurfaceEntity-এCanvasShapeজন মেম্বার আছেন যাদের ডায়নামিক হিসেবে সেট করা যেতে পারে।StereoSurfaceEntity.dimensionsএখন শুধু-পঠনযোগ্য প্রপার্টি; অ্যাপ্লিকেশনকেCanvasShapeসেট করে ডাইমেনশন পরিবর্তন করতে হবে।StereoSurfaceEntityএখন কনস্ট্রাকশনের পরেStereoModeআবার সেট করার অনুমতি দেয়।
অন্যান্য পরিবর্তন
- কম্পাইল-টাইম minSDK কমিয়ে ২৪ করা হয়েছে। সব Jetpack XR API-এর রানটাইমে API 34 প্রয়োজন হয়।
SceneCore-এর সেশন ফ্যাক্টরি (Session.create) আরSCENE_UNDERSTANDINGঅনুমতি পাওয়ার জন্য কোনও ইন্টেন্ট লঞ্চ করে না। এর পরিবর্তে, অ্যাঙ্কর তৈরি করার চেষ্টা করার আগে ক্লায়েন্ট অ্যাপ্লিকেশনকে ব্যবহারকারীর কাছ থেকে স্পষ্টভাবে অনুমতি চাইতে হবে। ব্যবহারকারী অনুমতি না দিলে অ্যাঙ্কর তৈরি করা যাবে না।
সমস্যার সমাধান
getActivitySpacePose()-এর সমস্যা সমাধান করা হয়েছে যাতেActivitySpaceস্কেলকে বিবেচনা করা যায়। এর জন্য, সবসময় নন-স্কেলড মিটার না দেখিয়ে স্কেলড মিটারে ট্রান্সলেশন ভ্যালু দেখানো হয়।transformPoseToএখন সোর্স বা ডেস্টিনেশনেActivitySpaceথাকলে কোঅর্ডিনেট পরিবর্তন গণনা করার জন্য সঠিক ইউনিটও ব্যবহার করে।setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom))ব্যবহার করে কোনও নাল স্কাইবক্স সংক্রান্ত পছন্দ পাস করা হলে, স্কাইবক্স এখন সম্পূর্ণ কালো স্কাইবক্সে সেট করা হবে। সিস্টেম ডিফল্ট স্কাইবক্স ও জ্যামিতিতে ফিরে যেতে,setSpatialEnvironmentPreference(null).ব্যবহার করুন
ভার্সন 1.0.0-alpha01
১২ ডিসেম্বর, ২০২৪
androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 রিলিজ করা হয়েছে।
প্রাথমিক রিলিজের ফিচার ইমারসিভ দৃশ্য ও এনভায়রনমেন্ট তৈরি ও ম্যানিপুলেট করার জন্য Jetpack SceneCore-এর প্রাথমিক ডেভেলপার রিলিজ, একটি 3D সিন গ্রাফ লাইব্রেরি। এই লাইব্রেরি আপনাকে একে অপরের এবং আপনার ভার্চুয়াল বা বাস্তব-জগতের পরিবেশের সাথে সম্পর্কিত 3D মডেল এবং কন্টেন্ট প্যানেল প্লেস ও সাজাতে দেয়।
- SpatialEnvironment: আপনার এনভায়রনমেন্টের XR দৃশ্যের ব্যাকড্রপ হিসেবে স্কাইবক্স ইমেজ এবং/অথবা 3D মডেল জিওমেট্রি সহ সম্পূর্ণ ইমারসিভ অভিজ্ঞতা তৈরি করুন। অথবা পাসথ্রু চালু করুন, যাতে আপনার ভার্চুয়াল দৃশ্য ব্যবহারকারীর বাস্তব জগতের পরিবেশের সাথে ইন্টিগ্রেট করা যায়।
- PanelEntity: স্পেশিয়ালাইজড প্যানেলে স্ট্যান্ডার্ড Android লেআউট ও অ্যাক্টিভিটি এম্বেড করে আপনার 3D সিনের সাথে 2D কন্টেন্ট যোগ করুন। এই প্যানেলগুলি ভাসতে পারে বা বাস্তব জগতের সারফেসে অ্যাঙ্কর করা যেতে পারে।
- GltfModelEntity: আপনার দৃশ্যে 3D মডেল প্লেস, অ্যানিমেট ও ইন্ট্যার্যাক্ট করুন। আগে থেকে থাকা মডেলের সাথে সহজে ইন্টিগ্রেশন করার জন্য SceneCore, glTF ফাইল ফর্ম্যাট সাপোর্ট করে।
- SpatialAudio: সম্পূর্ণভাবে নিমজ্জিত, স্পেশিয়ালাইজড সাউন্ডের জন্য আপনার 3D সিনের মধ্যে অ্যাম্বিয়েন্ট ও পয়েন্ট অডিও সোর্স যোগ করুন।
- StereoSurfaceEntity: SceneCore, Android Surface-এ রেন্ডার করা কন্টেন্টের বাঁদিক/ডানদিকের চোখের রাউটিং সাপোর্ট করে। এটি পাশাপাশি বা উপর-নিচে ফর্ম্যাটে স্টেরিওস্কোপিক কন্টেন্ট রেন্ডার করতে ব্যবহার করা যেতে পারে, যেমন স্টেরিও ফটো, 3D ভিডিও বা অন্যান্য ডায়নামিক রেন্ডার করা UI। অ্যাপ্লিকেশনকে ভিডিও ডিকোডিংয়ের জন্য MediaPlayer বা ExoPlayer ব্যবহার করতে হবে।
- কম্পোনেন্ট সিস্টেম: SceneCore আপনার XR কন্টেন্টে ক্ষমতা যোগ করার জন্য একটি শক্তিশালী এবং নমনীয় কম্পোনেন্ট সিস্টেম অফার করে, যার মধ্যে ব্যবহারকারীদের জন্য মডেল এবং প্যানেলের সাথে সরানো, রিসাইজ করা এবং ইন্টার্যাক্ট করার জন্য অ্যাফোর্ডেন্স অন্তর্ভুক্ত।
- অ্যাঙ্কর: পাসথ্রু চালু থাকলে, আপনি আসল সারফেসে প্যানেল ও মডেল অ্যাটাচ করতে পারবেন, এর ফলে ব্যবহারকারীরা বাস্তব-জগতের পরিবেশে ভার্চুয়াল কন্টেন্ট নির্বিঘ্নে ইন্টিগ্রেট করতে পারবেন।
- ব্যবহারকারীর পোজ: ব্যবহারকারীর পজিশনের আশেপাশে আপনার কন্টেন্টকে ওরিয়েন্ট করতে, ভার্চুয়াল দৃশ্যে ব্যবহারকারীর লোকেশন অ্যাক্সেস করুন।
- SpatialCapabilities: উপলভ্য হলে, UI কন্টেন্টের 3D পজিশনিংয়ের মতো স্পেশিয়ালাইজড ক্যাপাবিলিটির সুবিধা নেয় এমন সম্পূর্ণ অ্যাডাপ্টিভ অ্যাপ তৈরি করুন। শুধু তাই নয়, অ্যাপ চলাকালীন ব্যবহারকারী কীভাবে Android XR ডিভাইস ব্যবহার করছেন তার ভিত্তিতে অভিজ্ঞতা পরিবর্তন করতে, আপনার অ্যাপ ক্ষমতাতে হওয়া পরিবর্তনগুলিও মনিটর করতে পারে।
পরিচিত সমস্যা
- বর্তমানে Jetpack SceneCore ব্যবহার করার জন্য minSDK-এর ভার্সন ৩০ হতে হবে। এর বিকল্প হিসেবে, minSDK 23-এর সাথে বিল্ড ও রান করতে, নিম্নলিখিত ম্যানিফেস্ট এন্ট্রি
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>যোগ করুন। - বিভিন্ন পরিস্থিতিতে সেশন বাতিল হয়ে যেতে পারে যা অটোমেটিক অ্যাক্টিভিটি আবার তৈরি করে, এর মধ্যে প্রধান প্যানেলের সাইজ পরিবর্তন করা, পেরিফেরাল কানেক্ট করা এবং লাইট ও ডার্ক মোডের মধ্যে পরিবর্তন করা অন্তর্ভুক্ত। আপনি সেশন বাতিল করা সংক্রান্ত সমস্যার সম্মুখীন হলে, এর সমাধানগুলির মধ্যে রয়েছে আপনার মূল প্যানেলকে রিসাইজ করা যায় না এমন করে তোলা, ডায়নামিক প্যানেল এন্টিটি ব্যবহার করা, নির্দিষ্ট কনফিগারেশন পরিবর্তনের জন্য অ্যাক্টিভিটি রিক্রিয়েশন বন্ধ করা বা লাইট/ডার্ক মোড থিম পরিবর্তন বন্ধ করা।
- GltfEntity-তে মুভেবল ও রিসাইজেবল কম্পোনেন্ট কাজ করে না।
- GltfEntity-তে Entity.getSize() কাজ করে না।
- Jetpack XR অ্যাপকে AndroidManifest-এ
android.permission.SCENE_UNDERSTANDINGঅনুমতির জন্য অনুরোধ করতে হবে। - শুধুমাত্র Android XR ডিভাইসে সেশন তৈরি করা যায়। এই সময়ে, আপনি কোনও সেশন তৈরি করে সেটি Android XR ডিভাইস ছাড়া অন্য কোনও ডিভাইসে ব্যবহার করতে চাইলে, RuntimeException পাবেন।
- `SpatialEnvironment.setSpatialEnvironmentPreference()`-এর মাধ্যমে স্কাইবক্সকে নাল হিসেবে সেট করলে, ডকুমেন্টেশনে উল্লেখ করা মতো সলিড কালো স্কাইবক্স তৈরি হয় না। এর ফলে সিস্টেম ডিফল্ট স্কাইবক্স বা বর্তমান স্কাইবক্সে কোনও পরিবর্তন নাও হতে পারে।
- SceneCore ক্লায়েন্টদের অ্যাপের ডিপেন্ডেন্সির জন্য তাদের Gradle কনফিগারেশনে
implementation(“com.google.guava:listenablefuture-1.0”)যোগ করতে হবে। ভবিষ্যতে রিলিজ করা ভার্সনে, scenecore এই লাইব্রেরিকেapiডিপেন্ডেন্সি হিসেবে অন্তর্ভুক্ত করবে, ফলে ক্লায়েন্টদের এটি আলাদা করে ঘোষণা করতে হবে না। - SceneCore ভুল করে
com.google.guava:guava-31.1-androidওcom.google.protobuf:protobuf-javalite-কে ট্রানজিটিভ ডিপেন্ডেন্সি হিসেবে অন্তর্ভুক্ত করে। এর ফলে আপনার বিল্ডে ডুপ্লিকেট ক্লাস সংক্রান্ত সমস্যা হলে, এই দুটি ডিপেন্ডেন্সি নিরাপদে বাদ দেওয়া যেতে পারে। - আপনার অ্যাপ SceneCore ব্যবহার করলে এবং ProGuard চালু করলে, আপনি কোনও সেশন তৈরি করার সময় এটি ক্র্যাশ করবে। এর বিকল্প হিসেবে, ProGuard বন্ধ করে দিন। কীভাবে ProGuard চালু করবেন সেই সম্পর্কে আরও জানতে এই গাইড দেখুন।