জেটপ্যাক সিনকোর
| সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | রিলিজ প্রার্থী | বিটা রিলিজ | আলফা রিলিজ |
|---|---|---|---|---|
| ২৫ মার্চ, ২০২৬ | - | - | - | ১.০.০-আলফা১৩ |
নির্ভরতা ঘোষণা করা
XR SceneCore-এর উপর নির্ভরতা যোগ করতে হলে, আপনাকে আপনার প্রজেক্টে Google Maven রিপোজিটরিটি যুক্ত করতে হবে। আরও তথ্যের জন্য Google-এর Maven রিপোজিটরিটি পড়ুন।
আপনার অ্যাপ বা মডিউলের build.gradle ফাইলে প্রয়োজনীয় আর্টিফ্যাক্টগুলোর ডিপেন্ডেন্সি যোগ করুন:
গ্রোভি
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha13" // Optional dependencies for asynchronous conversions implementation "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha13" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha13" }
কোটলিন
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha13") // Optional dependencies for asynchronous conversions implementation("androidx.xr.scenecore:scenecore-guava:1.0.0-alpha13") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha13") }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, 'বিল্ড নির্ভরতা যোগ করুন ' দেখুন।
প্রতিক্রিয়া
আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করে। আপনি যদি নতুন কোনো সমস্যা খুঁজে পান অথবা এই লাইব্রেরিটি উন্নত করার জন্য কোনো ধারণা থাকে, তবে আমাদের জানান। নতুন কোনো সমস্যা তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরির বিদ্যমান সমস্যাগুলো দেখে নিন। আপনি তারকা বোতামে ক্লিক করে কোনো বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সংস্করণ ১.০
সংস্করণ 1.0.0-alpha13
২৫ মার্চ, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-alpha13 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha13-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
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এবং পরবর্তী রিলিজগুলোতে সমাধান করা হয়েছে। প্রভাবিত অ্যাপগুলোকে সর্বশেষ সংস্করণে আপডেট করা উচিত।
এপিআই পরিবর্তন
-
ActivitySpace.addOnSpaceUpdatedListenerএবংActivitySpace.removeOnSpaceUpdatedListenerএর নাম পরিবর্তন করেaddOnOriginChangedListenerএবংremoveOnOriginChangedListenerরাখা হয়েছে।AnchorEntity.setOnSpaceUpdatedListenerএর নাম পরিবর্তন করেsetOnOriginChangedListenerরাখা হয়েছে। ( I5d8fb ) -
FakeEntityতে public name প্রপার্টি যোগ করা হয়েছে এবংFakePanelEntityতে ভিউটিকে পাবলিক করা হয়েছে। ( Ifa1f9 )
বাগ সংশোধন
- নতুন সিস্টেম ইমেজগুলিতে ( I57d04 ) স্থির পিক্সেল ঘনত্ব গণনা
সংস্করণ 1.0.0-alpha11
২৮ জানুয়ারী, ২০২৬
androidx.xr.scenecore:scenecore-*:1.0.0-alpha11 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha11-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
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-গুলোর কার্যকারিতা Jetpack XR-এর জন্য ARCore-এর মধ্যে থাকা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-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
PanelEntity( I462b3 )-তেtransformPixelCoordinatesToPoseএবংtransformNormalizedCoordinatesToPoseযোগ করা হয়েছে -
SceneCore( I570b9 )-এর লজিকের উপর ভিত্তি করেSceneCoreরানটাইমে Utils নামে একটি হেল্পার ক্লাস যোগ করা হয়েছে।
বাগ সংশোধন
- সেশন ধ্বংস হয়ে গেলে এবং একটি
SpatialModeChangeEvent( If44e8 ) পেলে যে সম্ভাব্য ক্র্যাশটি ঘটতে পারতো, তা সমাধান করা হয়েছে। - একটি বাগ সংশোধন করা হয়েছে যার কারণে কোনো Activity থেকে বের হওয়ার বা পুনরায় প্রবেশ করার সময় একটি
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 )
এপিআই পরিবর্তন
-
PointerCaptureComponent.PointerCaptureStateকনস্ট্যান্ট টাইপগুলো Int থেকেPointerCaptureStateসাবটাইপে পরিবর্তন করা হয়েছে। ( Ic888a ) -
Scene.spatialCapabilitiesএখন একটি Int ফিল্ডের পরিবর্তেSet<SpatialCapability>টাইপের।SpatialCapabilityকনস্ট্যান্টগুলোর নাম পরিবর্তন করা হয়েছে। ( I9c109 ) -
SurfaceEntityকনস্ট্যান্ট টাইপগুলোর নাম পরিবর্তন করে Int থেকেSurfaceEntityসাবটাইপে পরিবর্তন করা হয়েছে। ( I419ed ) -
SpatializerConstantকনস্ট্যান্ট টাইপগুলোর নাম পরিবর্তন করে Int থেকেSpatializerConstantসাবটাইপে পরিবর্তন করা হয়েছে। ( Ia0e18 ) -
TextureSamplerকনস্ট্যান্ট টাইপগুলোর নাম পরিবর্তন করা হয়েছে এবং এগুলোকে Int থেকেTextureSamplerসাবটাইপে পরিবর্তন করা হয়েছে। ( I44078 ) -
SpatialVisibilityকনস্ট্যান্ট টাইপগুলো Int থেকেSpatialVisibilityসাবটাইপে পরিবর্তন করা হয়েছে। ( I70739 ) -
ResizeEvent.ResizeStateকনস্ট্যান্ট টাইপগুলোর নাম পরিবর্তন করে Int থেকেResizeStateসাবটাইপে পরিবর্তন করা হয়েছে। ( I384d5 ) -
InputEventকনস্ট্যান্ট টাইপগুলোর নাম পরিবর্তন করা হয়েছে এবং এগুলোকে Int থেকে পরিবর্তন করে নিজ নিজ এনক্লোজিং টাইপ থেকে ইনহেরিট করানো হয়েছে। ( I82817 ) -
GltfModelEntity.AnimationStateকনস্ট্যান্ট টাইপগুলো Int থেকেAnimationStateসাবটাইপে পরিবর্তন করা হয়েছে। ( I24f4e ) -
AlphaModeকনস্ট্যান্ট টাইপগুলোর নাম পরিবর্তন করে ইন্ট (Int) থেকেAlphaModeসাবটাইপে পরিবর্তন করা হয়েছে। ( I27b56 ) -
Spaceকনস্ট্যান্ট টাইপগুলো ইন্ট (Int) থেকে স্পেস সাবটাইপে পরিবর্তন করা হয়েছে। ( I9255b ) -
ScenePose.hitTestএবং সংশ্লিষ্ট মেথডগুলো এখন কোনো ছেদবিন্দু খুঁজে না পেলে, nullhitPositionসহ একটিHitTestResultএর পরিবর্তেnullরিটার্ন করে।HitTestResult.hitPositionআর null হতে পারে না। ( I1400a ) -
ActivityPoseএর রেফারেন্সScenePoseএ পরিবর্তন করা হয়েছে। ( I7fe43 )
সংস্করণ 1.0.0-alpha08
২২ অক্টোবর, ২০২৫
androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha08-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
ActivityPanelEntity.moveActivityনাম পরিবর্তন করেtransferActivityরাখা হয়েছে ( I273c5 , b/430332856 )
বাগ সংশোধন
-
:xr:scenecore:scenecore-spatial-renderingএবং:xr:scenecore:scenecore-spatial-core:xr:scenecore:scenecoreএর ইমপ্লিমেন্টেশন ডিপেন্ডেন্সি হিসেবে যোগ করা হয়েছে ( I6ab65 , b/447000520 ) - সেশন ধ্বংস হওয়ার পর
session.sceneঅ্যাক্সেস করা হলে একটি ব্যতিক্রম (Exception) থ্রো করা হয়। ( 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-এ এই কমিটগুলো রয়েছে।
এপিআই পরিবর্তন
-
fixedAspectRatioনাম পরিবর্তন করেisFixedAspectRatioEnabledরাখা হয়েছে এবং এটিকে একটি বুলিয়ান প্রপার্টিতে পরিণত করা হয়েছে ( I5c4e8 , b/440588971 ) -
ScenecoreFakes এখনxr:scenecore:scenecore-testingমডিউলে অবস্থিত। ( Idd951 ) -
shouldAutoHideContentএর নাম পরিবর্তন করেisAutoHideContentWhileResizingEnabledএবংshouldAlwaysShowOverlayএর নাম পরিবর্তন করেisAlwaysShowOverlayEnabledরাখা হয়েছে ( I97c36 , b/432335421 ) - পাঠযোগ্যতার জন্য
SceneCoreTextureSamplerকনস্ট্যান্টগুলো আপডেট করা হয়েছে, উদাহরণস্বরূপTextureSampler.MinFilter.LINEARএখনTextureSampler.MIN_FILTER_LINEAR( Ib159c )। - Scene-এর
setKeyEntityসেটারটিkeyEntityভেরিয়েবলের সাথে একীভূত করা হয়েছে।keyEntityAnchorEntityমতো কোনো অস্থানান্তরযোগ্য Entity-তে সেট করলে, বুলিয়ান false রিটার্ন করার পরিবর্তে একটিIllegalArgumentExceptionথ্রো হবে। ( I62080 , b/428721695 , b/422215745 ) - Scene-এর
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.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 ফাইলে শীর্ষ-স্তরের মেথড হিসেবে স্থানান্তর করা হয়েছে এবং প্রথম প্যারামিটার হিসেবে Session গ্রহণ করে ( 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-এ এই কমিটগুলো রয়েছে।
এপিআই পরিবর্তন
-
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তে পারসিভড রেজোলিউশন এপিআই যোগ করা হয়েছে। ( I118f6 ) - HSM-এ অ্যাক্টিভিটির প্রধান প্যানেলের অনুভূত রেজোলিউশন নিরীক্ষণ করার জন্য Scene.kt-তে
PerceivedResolutionকলব্যাক মেথড যোগ করা হয়েছে। ( I58084 ) -
SurfaceEntity- অ্যাপ্লিকেশনকে তৈরির সময় সুপার স্যাম্পলিং অনুরোধ করার সুবিধা যোগ করা হয়েছে। এটি অ্যাপ্লিকেশনগুলিকে অ্যান্টি-এলাইজিং এর জন্য সুপার স্যাম্পলিং ফিল্টার ব্যবহার করার সুযোগ দেয়। ( I06913 ) -
ActivitySpaceএrecommendedContentBoxInFullSpaceপ্রপার্টি যোগ করা হয়েছে। এটি Full Space Mode-এ থাকাকালীন কন্টেন্ট রাখার জন্য একটি প্রস্তাবিত বক্স রিটার্ন করে। ( I4cd6f ) - চলনযোগ্য মডিফায়ারের জন্য ওভারলোডেড কনস্ট্রাক্টর দেওয়া হয়েছে যা অ্যাঙ্করিং-এর সুবিধা দেয়। ( Ic0c70 )
এপিআই পরিবর্তন
এই রিলিজের জন্য SceneCore এর API-তে ব্যাপক পরিবর্তন আনা হয়েছে। বেশ কিছু ক্লাসের নাম পরিবর্তন করা হয়েছে এবং/অথবা সেগুলোকে ভিন্ন মডিউলে স্থানান্তর করা হয়েছে, এবং বেশিরভাগ গেটার/সেটার মেথডকে কোটলিন প্রপার্টি দিয়ে প্রতিস্থাপন করা হয়েছে। যদিও আমরা আমাদের প্রথম বিটা রিলিজের আগ পর্যন্ত ভবিষ্যতে 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এর গেটার এবং সেটারগুলোকে প্রোপার্টি দিয়ে প্রতিস্থাপন করা হয়েছে।PanelEntity.sizeপ্রোপার্টিটিFloat3dSizeথেকেFloat2dSizeএ পরিবর্তন করা হয়েছে। অপ্রচলিত মেথডandroidx.xr.scenecore.PanelEntity.getPixelDimensionsসরানো হয়েছে, এর পরিবর্তেgetSizeInPixelsব্যবহার করুন। ( Icc174 ) -
androidx.xr.scenecore.OnSpaceUpdatedListenerRunnableদ্বারা প্রতিস্থাপন করা হয়েছে। ( I19308 ) -
SpatialUser.getCameraViews()একটি প্রপার্টি দিয়ে প্রতিস্থাপন করা হয়েছে। ( Ib0cc5 )ExrImageএবংGltfModel:createমেথডগুলোকে suspend ফাংশনে পরিবর্তন করা হয়েছে; create প্যারামিটারগুলোকেStringএর পরিবর্তেUriবাPathগ্রহণ করার জন্য পরিবর্তন করা হয়েছে। ( Id8883 ) ( I0d247 ), ( I25706 ) -
SpatialEnvironment.requestFullSpaceModeএবংSpatialEnvironment.requestHomeSpaceModeScene-এ সরানো হয়েছে, উদাহরণস্বরূপsession.scene.requestFullSpaceMode()-এর পরিবর্তেsession.scene.spatialEnvironment.requestFullSpaceMode()ব্যবহার করুন।addOnPassthroughOpacityChangedListenerএবংaddOnSpatialEnvironmentChangedListenerএখন ওভাররাইড রয়েছে যা ঐচ্ছিক Executors গ্রহণ করে। ( 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এ পরিবর্তন করা হয়েছে। এটি আর null ভ্যালু গ্রহণ করে না। এর পরিবর্তে, কোনো অপাসিটি প্রেফারেন্স নেই তা বোঝাতেSpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCEব্যবহৃত হয়। ( I40107 ) - create মেথডে
windowBoundsPxপ্যারামিটারটিকেpixelDimensionsএ এবং এর টাইপকে Rect থেকেIntSize2dতে আপডেট করা হয়েছে। ( I1926e ) -
SpatialEnvironmentকনস্ট্রাক্টর এখন অভ্যন্তরীণ ( I75a51 ) -
SpatialPointerIconNoneএবংSpatialPointerIconCircleক্লাস দুটিকে তাদের সহযোগী অবজেক্টSpatialPointerIcon.NONEএবংSpatialPointerIcon.CIRCLEদ্বারা প্রতিস্থাপন করা হয়েছে ( I416d2 ) -
SpatialPointerComponentএরSpatialPointerIconএখন আর null হতে পারে না। সিস্টেমের ডিফল্ট পয়েন্টার আইকন ব্যবহার করা হবে তা বোঝাতে 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কে add/remove মেথড দিয়ে প্রতিস্থাপন করা হয়েছে। ( I4c956 ) -
AnchorPlacement: planeTypeFilterনাম পরিবর্তন করেanchorablePlaneOrientationsরাখা হয়েছে,planeSemanticFilterনাম পরিবর্তন করেanchorablePlaneSemanticTypesরাখা হয়েছে। একটিAnchorEntityবাActivitySpaceএ একটিMovableComponentযোগ করলে false রিটার্ন করবে,MoveListenerনাম পরিবর্তন করেEntityMoveListener shouldDisposeParentAnchorনাম পরিবর্তন করেdisposeParentOnReAnchor systemMovableরাখা হয়েছে,createফাংশন থেকে systemMovable সরিয়ে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 ) -
SpatialVisibilityক্লাসটিকে const Int ভ্যালু সহ একটি পাবলিক অবজেক্ট দ্বারা প্রতিস্থাপন করা হয়েছে।setSpatialVisibilityChangedListenerএখনConsumer<Int>এর পরিবর্তেConsumer<SpatialVisibility>গ্রহণ করে ( Ie7e8c ) -
PointerCaptureComponentধ্রুবকগুলোর নাম পরিবর্তন করেPointerCaptureComponent.PointerCaptureStateঅবজেক্টে স্থানান্তর করা হয়েছে ( I9c7ac ) -
PointerCaptureComponents' StateListenerConsumer<Int>দ্বারা প্রতিস্থাপন করা হয়েছে। ( I9c7ac ) -
InputEventListenerConsumer<InputEvent>দ্বারা প্রতিস্থাপন করা হয়েছে ( I9c7ac ) -
setPreferredAspectRatioScene ক্লাস থেকেSpatialWindowঅবজেক্টে স্থানান্তর করা হয়েছে এবং এটি প্রথম প্যারামিটার হিসেবে Session গ্রহণ করে। ( 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> ResizeEventListenerConsumer<ResizeEvent> ResizableComponent.sizeদ্বারা প্রতিস্থাপন করা হয়েছে।ResizableComponent.affordanceSize ResizableComponent.minimumSizeএর নাম পরিবর্তন করেResizableComponent.minimumEntitySize ResizableComponent.maximumSizeনাম পরিবর্তন করেResizableComponent.maximumEntitySizeরাখা হয়েছে।ResizableComponent.autoHideContentএর নাম পরিবর্তন করে ResizableComponent.maximumEntitySize রাখা হয়েছে। ResizableComponent.autoHideContent-এর নাম পরিবর্তন করেResizableComponent.shouldAutoHideContentরাখা হয়েছে।ResizableComponent.forceShowResizeOverlayনাম পরিবর্তন করেResizableComponent.shouldAlwaysShowOverlayরাখা হয়েছে। ( I97a2d ) -
androidx.xr.scenecoreএবংandroidx.xr.composeএর জন্যminSDKকমিয়ে 24 করা হয়েছে। XR প্যাকেজগুলোর জন্য রানটাইমে এখনও API 34 প্রয়োজন। ( I17224 ) - সমস্ত Jetpack XR প্যাকেজ থেকে
RequiresApi(34)সীমাবদ্ধতা সরানো হয়েছে। এই সীমাবদ্ধতাটি অপ্রয়োজনীয় ছিল কারণ Jetpack XR বর্তমানে শুধুমাত্র API লেভেল 34+ যুক্ত ডিভাইসগুলিতে উপলব্ধ। ( Iae0f8 ) - মূল
SceneCoreআর্টিফ্যাক্ট (xr:scenecore:scenecore)-এ শুধুমাত্র কোটলিন-স্টাইলের অ্যাসিঙ্ক এপিআই থাকবে। জাভা ডেভেলপাররা সামঞ্জস্যপূর্ণ এপিআই অ্যাক্সেস করার জন্যxr:scenecore:scenecore-guavaলাইব্রেরির উপর নির্ভর করতে পারেন। ( If221b ) - Kotlin 2.0 দিয়ে প্রকাশিত প্রোজেক্টগুলি ব্যবহার করার জন্য KGP 2.0.0 বা তার নতুন সংস্করণ প্রয়োজন ( Idb6b5 )
- এই লাইব্রেরিটি এখন JSpecify নালনেস অ্যানোটেশন ব্যবহার করে, যা টাইপ-ইউজ। সঠিক ব্যবহার নিশ্চিত করতে কোটলিন ডেভেলপারদের নিম্নলিখিত কম্পাইলার আর্গুমেন্টটি ব্যবহার করা উচিত:
-Xjspecify-annotations=strict(কোটলিন কম্পাইলারের ২.১.০ সংস্করণ থেকে এটি ডিফল্ট হিসেবে ব্যবহৃত হয়) ( Ia8420 ) - যেসব async মেথড
ListenableFutureরিটার্ন করে, সেগুলোকে Kotlin suspend ফাংশন দিয়ে প্রতিস্থাপন করা হয়েছে। যেসব জাভা ডেভেলপার Kotlin suspend ফাংশনের পরিবর্তেListenableFutureভিত্তিক async মেথড ব্যবহার করতে চান, তাদের এখন:xr:scenecore-scenecore-guavaতে থাকা এক্সটেনশন ফাংশনগুলো ব্যবহার করতে হবে। উদাহরণস্বরূপ,GuavaExrImageএ Guava-এর সমতুল্য ExrImage async ফাংশনগুলো,GuavaScenePoseএ Guava-এর সমতুল্যScenePoseasync ফাংশনগুলো,GuavaGltfModelএGuava-equivalent GltfModelasync ফাংশনগুলো ইত্যাদি রয়েছে। ( If7283 ) ( I0af60 ) ( If7283 ) ( Ia8515 ) ( I4efdf ) ( I54bbf ) ( I3467a ) ( I82a33 )
বাগ সংশোধন
- মিনিফাইড ক্লায়েন্টদের জন্য
AbstractMethodErrorপ্রতিরোধ করতে Jetpack XR ScenecoreProGuardনিয়মটি আপডেট করা হয়েছে। ( I91a01 ) - Jetpack XR
SceneCore( I4f47e )-এর জন্য Proguard মিনিফিকেশন সমর্থন করার অতিরিক্ত সংশোধন। - একটি বাগ সংশোধন করা হয়েছে যেখানে একটি
InteractableComponentক্র্যাশ করতে পারতো যদিInputEventএর HitInfo-তেhitPositionhitPositionথেকে null হলে ক্র্যাশ করতো ( I7a695 )। - কনফিগ *মোড ভ্যালুগুলোর আচরণ প্রতিফলিত করার জন্য সেগুলোর নাম পরিবর্তন করা হয়েছে। ( I6d247 )
-
SceneCoreTestApp-এ FOV এবংHitTestসংক্রান্ত সমস্যাগুলি সমাধান করা হয়েছে। ( I2c51e ) -
SpatialCapabilities.hasCapability()ফাংশনের একটি বাগ সংশোধন করা হয়েছে, যেখানে এটি বিটওয়াইজ OR ব্যবহার করে দেওয়া ক্যাপাবিলিটিগুলোর মধ্যে যেকোনো একটি সত্য হলেই true রিটার্ন করত, অথচ সবগুলো সত্য হলেই কেবল true রিটার্ন করার কথা ছিল। ( 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:enableOnBackInvokedCallback= "true"উল্লেখ করতে হবে। -
StereoSurfaceEntityএখন দুটি নতুনStereoModeভ্যালু—MULTIVIEW_LEFT_PRIMARY এবং MULTIVIEW_RIGHT_PRIMARY—এর মাধ্যমে MV-HEVC প্লেব্যাক সমর্থন করে। -
PanelEntity.setSizeএবংPanelEntity.getSizeএখন প্যারেন্ট স্পেসে সাইজ রিটার্ন করে। -
Entity.setPose,Entity.getPose,Entity.setScale,Entity.getScale,Entity.setAlphaএবংEntity.getAlphaএখন একটি নতুন প্যারামিটারrelativeToগ্রহণ করে, যা বিভিন্ন স্পেসের সাপেক্ষে মান গ্রহণ/স্থাপন করার সুযোগ দেয়। সমর্থিত মানগুলো হলো Parent, Activity এবং Real World স্পেস, এবং এই প্যারামিটারের ডিফল্ট মান হলো Parent। - দৃশ্যের বিষয়বস্তু কখন ব্যবহারকারীর দৃষ্টিসীমার ভিতরে বা বাইরে চলে যায় তা নিরীক্ষণ করার জন্য
SessionExt.ktএ স্থানিক দৃশ্যমানতা কলব্যাক এক্সটেনশন মেথড যোগ করা হয়েছে। -
SpatialAudioTrackএsetPointSourceParamsযুক্ত করা হয়েছে, যার ফলে ট্র্যাকটি তৈরি হওয়ার পরেও প্যারামিটারগুলো আপডেট করা যাবে। -
ScenecoreAPI-এর রেফারেন্স সহ Scene নামে একটি নতুন ক্লাস যোগ করা হয়েছে। Scene, Session-এর একটি এক্সটেনশন প্রপার্টি হিসেবে অ্যাক্সেসযোগ্য হবে।SessionExtএর ভেতরের ফাংশনগুলো Scene-এ স্থানান্তর করা হয়েছে, তাই ইম্পোর্টগুলো সামঞ্জস্য করতে হবে; উদাহরণস্বরূপ,SessionExt.getScene(session).addSpatialCapababilitiesChangedListenerবনামSessionExt.addSpatialCapabilitiesChangedListener। -
ActivityPose.hitTestAsyncযোগ করা হয়েছে, যা ভার্চুয়াল কন্টেন্টের বিরুদ্ধেhitTestকরার সুযোগ করে দেয়। -
SpatialPointerComponentনামে একটি নতুন কম্পোনেন্ট টাইপ যোগ করা হয়েছে, যা ক্লায়েন্টদের পয়েন্টারের জন্য রেন্ডার করা আইকন নির্দিষ্ট করার অথবা আইকনটি নিষ্ক্রিয় করার সুযোগ দেয়। এই কম্পোনেন্টটি বর্তমানে শুধুমাত্রPanelEntityইনস্ট্যান্সের সাথে সংযুক্ত করা যাবে। - নতুন
PanelEntityফ্যাক্টরি চালু করা হয়েছে, যা প্যানেলের ডাইমেনশন মিটার বা পিক্সেলে গ্রহণ করে। প্যানেলের জন্য দুটি Dimension টাইপ প্যারামিটার গ্রহণকারী পুরোনোPanelEntityফ্যাক্টরিটি সরিয়ে ফেলা হয়েছে।
এপিআই পরিবর্তন
- সমস্ত 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এর Session ক্লাসটি মুছে ফেলা হয়েছে এবং এর পরিবর্তে XR Runtime-এর Session ক্লাসটি যুক্ত করা হয়েছে। -
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 ক্লাস এখন একটি নিয়মিত কোটলিন ক্লাস।
- প্রতিটি কংক্রিট এনটিটি টাইপকে তার নিজস্ব ফাইলে রাখার জন্য
Entity.ktবিভক্ত করুন। - একটি নতুন
PanelEntityতৈরি করার সময়, বেশিরভাগ ভিউ একটিFrameLayoutঅধীনে পুনঃস্থাপন করা হয়। এটি স্পেশিয়াল প্যানেলের সাথেLayoutInspectorএর ব্যবহার সহজ করে তোলে। - অ্যাপ ডিবাগিং-এ সাহায্য করার জন্য, বর্তমানে ব্যবহৃত
XrExtensionsইনস্ট্যান্সটি এখন যথাসাধ্য চেষ্টার মাধ্যমে প্ল্যাটফর্মে নিবন্ধিত করা হয়েছে।
বাগ সংশোধন
-
MovableComponentএবংAnchorPlacementসহ একটিPanelEntityসরানো হলে যে ক্র্যাশটি ঘটতে পারতো, তা প্রতিরোধ করার জন্য একটি সমাধান যোগ করা হয়েছে। -
onResizeStartকলব্যাকেResizableComponentপুরনো সাইজ প্রদানের সমস্যাটি সমাধান করা হয়েছে। -
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 ( I4f47e )-এর জন্য Proguard মিনিফিকেশন সমর্থন করার অতিরিক্ত সংশোধন।
- মিনিফাইড ক্লায়েন্টদের জন্য
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.setFullSpaceMode -
import 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.getEntitiesOfType -
import androidx.xr.scenecore.getEntityForRtEntity
-
-
Session.unpersistAnchor(Anchor)মুছে ফেলা হয়েছে -
Session.createPersistedAnchorEntity(UUID)মুছে ফেলা হয়েছে
পরিচিত সমস্যা
-
PanelEntity.setCornerRadius()এবংActivityPanelEntity.setCornerRadius()প্যানেলটিকে পরবর্তীবার না সরানো পর্যন্ত কার্যকর নাও হতে পারে, প্যানেলটিকে তার বর্তমান অবস্থানে সরিয়ে এই সমস্যার সমাধান করা যেতে পারে। - যখন
ActivitySpaceএBoundsChangedকল করা হয়, তখন কিছুActivityPoseসঠিকভাবে আপডেট নাও হতে পারে।ActivitySpaceএর পরবর্তীOnSpaceUpdatedকলে এটি আপডেট করা হবে।
ভাঙন ও আচরণগত পরিবর্তন
- যদি প্যানেলের প্রস্থ বা উচ্চতা 32dp-এর চেয়ে কম হয়, তাহলে
PanelEntityএবংActivityPanelEntityএর ডিফল্ট কর্নার রেডিয়াস 32dp বা তার চেয়ে কম হবে।
নতুন এপিআই এবং সক্ষমতা
-
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()has been fixed to account for theActivitySpacescale by returning translation values in scaled meters rather than always returning non-scaled meters.transformPoseTonow also uses the right units to compute coordinate changes when theActivitySpaceis involved in the source or destination. - The skybox will now be set to an all-black skybox whenever a null skybox preference is passed using
setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom)). To revert to the system default skybox and geometry, usesetSpatialEnvironmentPreference(null).
সংস্করণ 1.0.0-alpha01
১২ ডিসেম্বর, ২০২৪
androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 is released.
Features of Initial Release Initial developer release of Jetpack SceneCore, a 3D scene graph library for creating and manipulating immersive scenes and environments. This library allows you to place and arrange 3D models and content panels relative to each other and your virtual or real-world environments.
- SpatialEnvironment : Create fully immersive experiences with a skybox image and/or 3D model geometry as the backdrop for your XR scene of your environment. Or enable passthrough, so your virtual scene can integrate with the user's real-world environment.
- PanelEntity : Add 2D content to your 3D scenes by embedding standard Android layouts and Activities into spatialized panels that can float or be anchored to real-world surfaces.
- GltfModelEntity : Place, animate, and interact with 3D models in your scene. SceneCore supports the glTF file format for ease of integration with existing models.
- SpatialAudio : Add ambient and point audio sources into your 3D scene for fully immersive, spatialized sound.
- StereoSurfaceEntity : SceneCore supports left/right eye routing of content rendered onto an Android Surface. This can be used to render stereoscopic content in a side-by-side or top-bottom format, such as stereo photos, 3D video, or other dynamically rendered UIs. Applications should use MediaPlayer or ExoPlayer for video decoding.
- Component System: SceneCore offers a robust and flexible component system for adding capabilities to your XR content, including affordances for users to move, resize, and interact with models and panels.
- Anchor : With passthrough enabled, you can attach panels and models to actual surfaces, giving users seamless integration of virtual content in their real-world environment.
- User Pose: Access the user's location in the virtual scene, to orient your content around the user's position.
- SpatialCapabilities : Build fully adaptive apps that take advantage of spatialized capabilities when available, such as 3D positioning of UI content. Not only that, but your app can monitor for changes to capabilities while the app is executing, to modify the experience based on how the user is using their Android XR device.
পরিচিত সমস্যা
- Currently a minSDK of 30 is required to use Jetpack SceneCore. As a workaround add the following manifest entry
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>to be able to build and run with a minSDK of 23. - Session can become invalid in various situations that automatically recreate the Activity, including resizing a main panel, connecting peripherals, and changing between light and dark mode. If you encounter session invalidation issues, workarounds include making you main panel non-resizable, using a dynamic panel entity, disabling activity recreation for specific config changes or disabling light/dark mode theme changes.
- Movable and Resizable components are not supported on GltfEntity.
- Entity.getSize() is not supported on GltfEntity.
- Jetpack XR apps required to request
android.permission.SCENE_UNDERSTANDINGpermission in AndroidManifest. - Creating a session is only supported on an Android XR device. At this time, if you create a Session and try to use it on a non Android XR device, you'll get a RuntimeException.
- Setting the skybox to null via `SpatialEnvironment.setSpatialEnvironmentPreference() does not result in a solid black skybox as documented. It may result in the system default skybox or no change to the current skybox.
- SceneCore clients should add
implementation(“com.google.guava:listenablefuture-1.0”)to their Gradle configuration for their app's dependencies. In a future release, scenecore will include this library as anapidependency so clients will not need to explicitly declare it. - SceneCore erroneously includes
com.google.guava:guava-31.1-androidandcom.google.protobuf:protobuf-javaliteas transitive dependencies. If this results in duplicate class errors in your build, these two dependencies can be safely excluded. - If your app uses SceneCore and enables ProGuard, it will crash when you create a Session. As a workaround, disable ProGuard. See this guide for more information on how to enable ProGuard.