• Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤


    原文地址:

    Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤 - 网络资源是无限的 - 博客频道 - CSDN.NET
    http://blog.csdn.net/fengbingchun/article/details/11192189

    1、  先按照http://blog.csdn.net/fengbingchun/article/details/10439281中操作搭建好基本的Android开发环境;

    2、  打开Eclipse,-->Window-->AndroidVirtual Device Manager-->New-->AVD Name:Android_OpenGLES, Device:GalaxyNexus(4.65”,720*1280:xhdpi),Target:Android 4.3-API Level 18;Emulation Options中勾选Use HostGPU,点击OK;

    3、  选中新建的Android_OpenGLES,-->Start-->Launch,如果运行失败,则将其C:UsersSpring.androidavdAndroid_OpenGLES.avd文件夹中的config.ini文件,将hw.ramSize=1024改为hw.ramSize=1024MB,保存,再次运行即会成功;

    4、  创建一个新工程,判断设备是否支持OpenGL ES2.0;

    5、  File-->New-->Project…-->Android-->Android ApplicationProject-->Next-->Application Name:FirstOpenGLProject,Package Name:com.firstopenglproject.android,MinimumRequired SDK:API 10, Android 2.3.3(Gingerbread)(this is the minimum versionwith full OpenGL ES 2.0 support), Next-->不勾选Create customlauncher icon,勾选Create activity,Next-->选中Blank Activity,Next-->Activity Name:FirstOpenGLProjectActivity-->Finish;

    6.打开src-->com.firstopenglproject.android-->FirstOpenGLProjectActivity.java,将其内容改为:

    package com.firstopenglproject.android;
    
    import android.app.Activity;
    import android.app.ActivityManager;
    import android.content.Context;
    import android.content.pm.ConfigurationInfo;
    import android.opengl.GLSurfaceView;
    import android.os.Build;
    import android.os.Bundle;
    import android.view.Menu;
    import android.widget.Toast;
    
    public class FirstOpenGLProjectActivity extends Activity {
        private GLSurfaceView glSurfaceView;
        private boolean rendererSet = false;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.activity_first_open_glproject);
            glSurfaceView = new GLSurfaceView(this);
            
            final ActivityManager activityManager = 
                    (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
            final ConfigurationInfo configurationInfo = 
                    activityManager.getDeviceConfigurationInfo();
            final boolean supportsEs2 =
                    configurationInfo.reqGlEsVersion >= 0x20000
                        || (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1
                         && (Build.FINGERPRINT.startsWith("generic")
                          || Build.FINGERPRINT.startsWith("unknown")
                          || Build.MODEL.contains("google_sdk")
                          || Build.MODEL.contains("Emulator")
                          || Build.MODEL.contains("Android SDK built for x86")));
            if (supportsEs2) {
                // Request an OpenGL ES 2.0 compatible context.
                glSurfaceView.setEGLContextClientVersion(2);
                // Assign our renderer.
                glSurfaceView.setRenderer(new FirstOpenGLProjectRenderer());
                rendererSet = true;
            } else {
                Toast.makeText(this, "This device does not support OpenGL ES 2.0.",
                Toast.LENGTH_LONG).show();
                return;
            }
            setContentView(glSurfaceView);
        }    
        @Override
        protected void onPause() {
            super.onPause();
            if (rendererSet) {
                glSurfaceView.onPause();
            }
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            if (rendererSet) {
                glSurfaceView.onResume();
            }
        }
    }

    7、 选中com.firstopenglproject.android,点击右键-->New-->Class,Name:FirstOpenGLProjectRenderer-->Finish,其内容为:

    package com.firstopenglproject.android;
    
    import static android.opengl.GLES20.GL_COLOR_BUFFER_BIT;
    import static android.opengl.GLES20.glClear;
    import static android.opengl.GLES20.glClearColor;
    import static android.opengl.GLES20.glViewport;
    
    import javax.microedition.khronos.egl.EGLConfig;
    import javax.microedition.khronos.opengles.GL10;
    
    import android.opengl.GLSurfaceView.Renderer;
    
    public class FirstOpenGLProjectRenderer implements Renderer {
        @Override
        public void onSurfaceCreated(GL10 glUnused, EGLConfig config) {
    
            glClearColor(1.0f, 0.0f, 0.0f, 0.0f);
        }
    
        @Override
        public void onSurfaceChanged(GL10 glUnused, int width, int height) {
            // Set the OpenGL viewport to fill the entire surface.
            glViewport(0, 0, width, height);
        }
    
        /**
         * OnDrawFrame is called whenever a new frame needs to be drawn. Normally,
         * this is done at the refresh rate of the screen.
         */
        @Override
        public void onDrawFrame(GL10 glUnused) {
            // Clear the rendering surface.
            glClear(GL_COLOR_BUFFER_BIT);
        }
    }

    8、选中工程,右键-->Run As-->Android Application,将会显示空白红色屏幕。

    参考文献:《OpenGL ES 2.0 for Android》

  • 相关阅读:
    【技术博客】JWT -- JSON WEB TOKEN
    [2020 BUAA 软件工程]结对项目作业
    [2020 BUAA 软件工程]软件案例分析
    [2020 BUAA 软件工程]个人项目作业
    [2020 BUAA 软件工程]个人博客作业
    [2020 BUAA 软件工程]第 1 次个人作业
    BUAA_OO第四单元总结性博客作业
    BUAA_OO第三单元总结性博客作业
    BUAA_OO第二单元总结性博客作业
    北航OO第四单元总结(课程总结)
  • 原文地址:https://www.cnblogs.com/wangshunli/p/4534313.html
Copyright © 2020-2023  润新知