গ্রাফিক্স

অ্যান্ড্রয়েড গ্রাফিক্স এইচএএল আইকন

অ্যান্ড্রয়েড ফ্রেমওয়ার্কটি 2 ডি এবং 3 ডি এর জন্য বিভিন্ন গ্রাফিক্স রেন্ডারিং এপিআই সরবরাহ করে যা গ্রাফিক্স ড্রাইভারগুলির নির্মাতারা বাস্তবায়নের সাথে ইন্টারেক্ট করে, সুতরাং সেই এপিআইগুলি কীভাবে উচ্চ স্তরে কাজ করে সে সম্পর্কে একটি ভাল ধারণা থাকা গুরুত্বপূর্ণ important এই পৃষ্ঠাটি গ্রাফিক্স হার্ডওয়্যার বিমূর্ত স্তর (এইচএল) উপস্থাপন করেছে যার উপর নির্ভর করে এই ড্রাইভারগুলি নির্মিত।

অ্যাপ্লিকেশন বিকাশকারীরা তিনটি উপায়ে স্ক্রিনে চিত্রগুলি আঁকেন: ক্যানভাস , ওপেনজিএল ইএস বা ভুলকান সহ

অ্যান্ড্রয়েড গ্রাফিক্স উপাদান

এপিআই বিকাশকারীরা কী কী রেন্ডারিং ব্যবহার করে তা বিবেচনাধীন নয়, সমস্ত কিছু উপরিভাগে রেন্ডার করা হয়। পৃষ্ঠটি বাফার সারির প্রযোজককে উপস্থাপন করে যা প্রায়শই সারফেসফ্লিংগার গ্রাস করে। অ্যান্ড্রয়েড প্ল্যাটফর্মে তৈরি প্রতিটি উইন্ডো একটি পৃষ্ঠের দ্বারা ব্যাকড হয়। রেন্ডার করা সমস্ত দৃশ্যমান পৃষ্ঠতল সারফেসফ্লিনগার দ্বারা প্রদর্শনটিতে মিশ্রিত হয়।

নিম্নলিখিত চিত্রটি কী কী উপাদানগুলি এক সাথে কাজ করে তা দেখায়:

চিত্র উপস্থাপনা উপাদান

চিত্র 1. পৃষ্ঠতল কীভাবে রেন্ডার করা হয়

মূল উপাদানগুলি নীচে বর্ণিত:

চিত্র স্ট্রিম প্রযোজক

কোনও চিত্র স্ট্রিম প্রযোজক এমন কিছু হতে পারে যা গ্রাসের জন্য গ্রাফিক বাফার উত্পাদন করে। উদাহরণগুলির মধ্যে ওপেনজিএল ইএস, ক্যানভাস 2 ডি এবং মিডিয়াসেভার ভিডিও ডিকোডার অন্তর্ভুক্ত রয়েছে।

চিত্র স্ট্রিম গ্রাহকরা

ইমেজ স্ট্রিমগুলির সর্বাধিক সাধারণ ভোক্তা হ'ল সার্ফেসফ্লিংগার, সিস্টেম পরিষেবা যা বর্তমানে দৃশ্যমান পৃষ্ঠগুলি গ্রাস করে এবং উইন্ডো ম্যানেজার দ্বারা সরবরাহিত তথ্য ব্যবহার করে ডিসপ্লেতে তাদের মিশ্রিত করে। সারফেসফ্লিংগার হ'ল একমাত্র পরিষেবা যা প্রদর্শন সামগ্রীতে পরিবর্তন করতে পারে। সারফেসফ্লিনগার ওপেনজিএল এবং হার্ডওয়্যার সুরকারকে একদল পৃষ্ঠতল রচনা করতে ব্যবহার করে।

অন্যান্য ওপেনজিএল ইএস অ্যাপ্লিকেশনগুলি চিত্রের স্ট্রিমগুলিও গ্রাস করতে পারে যেমন ক্যামেরা অ্যাপ্লিকেশন কোনও ক্যামেরা প্রিভিউ চিত্র স্ট্রিম গ্রহণ করে। নন-জিএল অ্যাপ্লিকেশনগুলিও ভোক্তা হতে পারে, উদাহরণস্বরূপ ইমেজরিডার শ্রেণি।

হার্ডওয়্যার সুরকার

ডিসপ্লে সাবসিস্টেমের জন্য হার্ডওয়্যার বিমূর্তি। সারফেসফ্লিংগার ওপেনজিএল এবং জিপিইউ থেকে অফলোড কাজের জন্য হার্ডওয়্যার সুরকারকে নির্দিষ্ট কিছু রচনা কাজ অর্পণ করতে পারে। সারফেসফ্লিংগারটি কেবলমাত্র অন্য ওপেনজিএল ইএস ক্লায়েন্ট হিসাবে কাজ করে। সুতরাং যখন সার্ফেসফ্লিংগার সক্রিয়ভাবে এক বা দুটি বা তৃতীয়াংশের মধ্যে দুটি মিশ্রিত করে, উদাহরণস্বরূপ, এটি ওপেনএলএল ইএস ব্যবহার করে। এটি জিপিইউর সমস্ত গণনা পরিচালনা করার চেয়ে কম শক্তি মিশ্রণ করে।

হার্ডওয়্যার সুরকার এইচএল অন্যান্য অর্ধেক কাজ পরিচালনা করে এবং সমস্ত অ্যান্ড্রয়েড গ্রাফিক্স রেন্ডারিংয়ের কেন্দ্রীয় পয়েন্ট। হার্ডওয়্যার সুরকারকে অবশ্যই ইভেন্টগুলি সমর্থন করতে হবে যার মধ্যে একটি হ'ল ভিএসওয়াইএনসি (অন্যটি হ'ল প্লাগ-ও-প্লে এইচডিএমআই সমর্থনের হটপ্লাগ)।

গ্রেলোক

চিত্র উত্পাদকদের দ্বারা অনুরোধ করা মেমরি বরাদ্দ করার জন্য গ্রাফিক্স মেমরি বরাদ্দকারী (গ্রেলোক) প্রয়োজন। বিশদের জন্য, গ্রেলোক এইচএল দেখুন

তথ্য প্রবাহ

অ্যান্ড্রয়েড গ্রাফিক্স পাইপলাইনের চিত্রের জন্য নিম্নলিখিত চিত্রটি দেখুন:

গ্রাফিক্স ডেটা প্রবাহ

চিত্র 2. অ্যান্ড্রয়েড মাধ্যমে গ্রাফিক তথ্য প্রবাহ

বাম দিকের অবজেক্টগুলি হ্যান্ড স্ক্রিন, স্ট্যাটাস বার এবং সিস্টেম ইউআই এর মতো গ্রাফিক্স বাফার উত্পাদনকারীকে উপস্থাপন করছে। সুরফেসফ্লিংগারটি কম্পোজিটর এবং হার্ডওয়্যার সুরকার হলেন সুরকার।

বাফেরকিউ

বাফারকিউগুলি অ্যান্ড্রয়েড গ্রাফিক্স উপাদানগুলির মধ্যে আঠালো সরবরাহ করে। এগুলি এমন এক জোড়া কাত যা প্রযোজক থেকে গ্রাহকের কাছে বাফার ধ্রুবক চক্রকে মধ্যস্থতা করে। উত্পাদকরা একবার তাদের বাফার বন্ধ করে দিলে, সারফেসফ্লিংগারটি ডিসপ্লেতে সমস্ত কিছু রচনা করার জন্য দায়বদ্ধ।

বাফেরকিউ যোগাযোগ প্রক্রিয়াটির জন্য নিম্নলিখিত চিত্রটি দেখুন।

বাফারকিউ যোগাযোগ প্রক্রিয়া

চিত্র 3. বাফারকিউ যোগাযোগ প্রক্রিয়া

বাফারকিউতে যুক্তি রয়েছে যা চিত্র স্ট্রিম উত্পাদক এবং চিত্র স্ট্রিম গ্রাহকদের একসাথে যুক্ত করে। চিত্র উত্পাদকের কয়েকটি উদাহরণ হ'ল এইচএল বা ওপেনজিএল ইএস গেমস দ্বারা নির্মিত ক্যামেরা প্রিভিউ। চিত্র গ্রাহকদের কয়েকটি উদাহরণ সারফেসফ্লিনগার বা অন্য অ্যাপ্লিকেশন যা কোনও ওপেনগিএল ইএস স্ট্রিম প্রদর্শন করে, যেমন ক্যামেরা অ্যাপ্লিকেশনটি ক্যামেরা ভিউফাইন্ডার প্রদর্শন করে।

বাফারকিউ একটি ডেটা স্ট্রাকচার যা একটি বাউর পুলকে একটি সারি সহ একত্র করে এবং প্রক্রিয়াগুলির মধ্যে বাফারগুলি পাস করার জন্য বাইন্ডার আইপিসি ব্যবহার করে। প্রযোজক ইন্টারফেস, বা কি আপনি এমন কারো জন্য যিনি গ্রাফিক বাফার জেনারেট করতে চায় পাস, IGraphicBufferProducer (অংশ SurfaceTexture )। বাফারকিউ প্রায়শই একটি সারফেসে রেন্ডার এবং অন্যান্য কাজের মধ্যে একটি জিএল গ্রাহককে গ্রাস করতে ব্যবহৃত হয়।

বাফারকিউ তিনটি ভিন্ন পদ্ধতিতে পরিচালনা করতে পারে:

সিঙ্ক্রোনাস-এর মতো মোড - ডিফল্টরূপে বাফারকিউ একটি সমকালীন-মত মোডে পরিচালনা করে, যেখানে নির্মাতার কাছ থেকে আসা প্রতিটি বাফার ভোক্তার কাছে চলে যায়। এই মোডে আর কোনও বাফার ফেলে দেওয়া হয় না। এবং যদি প্রযোজক খুব দ্রুত এবং বাফারগুলি সেখান থেকে নির্গত হওয়ার চেয়ে দ্রুত তৈরি করে, এটি ব্লক করে ফ্রি বাফারগুলির জন্য অপেক্ষা করবে।

নন-ব্লকিং মোড - বাফারকিউ একটি নন-ব্লকিং মোডেও কাজ করতে পারে যেখানে এটি সেই ক্ষেত্রে বাফারের অপেক্ষা না করে ত্রুটি তৈরি করে। এই মোডে আর কোনও বাফার ফেলে দেওয়া হয় না। গ্রাফিক্স ফ্রেমওয়ার্কের জটিল নির্ভরতা বুঝতে না পারে এমন অ্যাপ্লিকেশন সফ্টওয়্যারটিতে সম্ভাব্য অচলাবস্থা এড়াতে এটি কার্যকর।

মোড বাতিল করুন - শেষ পর্যন্ত, বাফারকিউ ত্রুটি উত্পন্ন বা অপেক্ষা করার পরিবর্তে পুরানো বাফারগুলি বাতিল করতে কনফিগার করা যেতে পারে। উদাহরণস্বরূপ, যদি কোনও টেক্সচার ভিউতে জিএল রেন্ডারিং পরিচালনা করা এবং যত তাড়াতাড়ি সম্ভব অঙ্কন করা হয় তবে বাফারগুলি অবশ্যই বাদ দিতে হবে।

এই বেশিরভাগ কাজ পরিচালনা করতে, সারফেসফ্লিংগারটি কেবলমাত্র অন্য ওপেনজিএল ইএস ক্লায়েন্ট হিসাবে কাজ করে। সুতরাং যখন সার্ফেসফ্লিংগার সক্রিয়ভাবে এক বা দুটি বা তৃতীয়াংশের মধ্যে দুটি মিশ্রিত করে, উদাহরণস্বরূপ, এটি ওপেনএলএল ইএস ব্যবহার করে।

হার্ডওয়্যার সুরকার এইচএএল অন্যান্য অর্ধেক কাজ পরিচালনা করে। এই এইচএল সমস্ত অ্যান্ড্রয়েড গ্রাফিক্স রেন্ডারিংয়ের কেন্দ্রীয় পয়েন্ট হিসাবে কাজ করে।