বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটি GLSurfaceView অবজেক্ট তৈরী করুন

একটি GLSurfaceView হচ্ছে বিশেষায়িত ভিউ যেখানে আপনি OpenGL ES গ্রাফিক্স অঙ্কন করতে পারেন। এটা নিজ থেকে তেমন কিছু করে না। অবজেক্টের যথার্থ অঙ্কন GLSurfaceView.Renderer এর মধ্যে নিয়ন্ত্রণ হয়ে থাকে যা আপনি এই ভিউ এ সেট করেছেন। মূলত, এই অবজেক্টের জন্য কোডটি খুব পাতলা, আপনি একে প্রসারিত করা এড়িয়ে যেতে পারেন এবং শুধু একটি অপরিমিত GLSurfaceView ইনসটেন্স তৈরী করতে পারেন কিন্তু এটা করবেন না। টাচ ইভেন্ট ক্যাপচার করার জন্য আপনাকে অবশ্যই এই ক্লাস প্রসারিত করার প্রয়োজন,যা Responding to Touch Events ক্লাসে আলোচনায় এসেছে।

একটি GLSurfaceView এর জন্য প্রয়োজনীয় কোড হচ্ছে ন্যুনতম (মিনিমাল), সুতরাং একটি দ্রুত বাস্তবায়নের জন্য, একটি একটিভিটি যা এটা ব্যবহার করে তার মধ্যে শুধু একটি ইনার ক্লাস তৈরী করাটা একটা সাধারণ বিষয়:

class MyGLSurfaceView extends GLSurfaceView {

    public MyGLSurfaceView(Context context){
        super(context);

        // Set the Renderer for drawing on the GLSurfaceView
        setRenderer(new MyRenderer());
    }
}

যখন OpenGL ES 2.0 ব্যবহার করা হয়, আপনাকে অবশ্যই আপনার GLSurfaceView কনস্ট্রাকটরে আরেকটি কল যুক্ত করতে হবে, এটা উল্লেখ করে যে আপনি ২.০ এপিআই ব্যবহার করতে চান:

// Create an OpenGL ES 2.0 context
setEGLContextClientVersion(2);

নোট: যদি আপনি OpenGL ES 2.0 API ব্যবহার করতে থাকেন, নিশ্চিত করুন আপনি এটা আপনার অ্যাপলিকেশন মেনিফেস্টে ডিক্লেয়ার করেছেন। আরও তথ্যের জন্য Declare OpenGL ES Use in the Manifest দেখুন।

আপনার GLSurfaceView ইমপ্লিমেন্টেশনে অন্য আরেকটি ঐচ্ছিক সংযোজন হচ্ছে GLSurfaceView.RENDERMODE_WHEN_DIRTY সেটিং ব্যবহার করে শুধু ভিউ ড্র করার জন্য রেনডার মোড সেট করা যখন আপনার ড্রয়িং ডাটাতে পরিবর্তন থাকে:

// Render the view only when there is a change in the drawing data
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

আপনি যতক্ষণ না requestRender()কল করবেন এই সেটিং GLSurfaceView ফ্রেমকে রিড্র হওয়ার থেকে বিরত রাখবে, যেটা এই স্যাম্পল অ্যাপের জন্য অধিক কার্যকরী।