登录
首页 » Java » android open gl 示例代码下载

android open gl 示例代码下载

于 2015-04-06 发布
0 221
下载积分: 1 下载次数: 0

代码说明:

[实例简介]Open GL 入门级示例 [实例截图] [核心代码]package com.china.gltry;import javax.microedition.khronos.egl.EGL10;import javax.microedition.khronos.egl.EGL11;import javax.microedition.khronos.egl.EGLConfig;import javax.microedition.khronos.egl.EGLContext;import javax.microedition.khronos.egl.EGLDisplay;import javax.microedition.khronos.egl.EGLSurface;import javax.microedition.khronos.opengles.GL;import android.view.SurfaceHolder;/** * An EGL helper class. */public class EGLHelper{ public EGLHelper() { } /** * Initialize EGL for a given configuration spec. * @param configSpec */ public void start(int[] configSpec){ /* * Get an EGL instance */ mEgl = (EGL10) EGLContext.getEGL(); /* * Get to the default display. */ mEglDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); /* * We can now initialize EGL for that display */ int[] version = new int[2]; mEgl.eglInitialize(mEglDisplay, version); EGLConfig[] configs = new EGLConfig[1]; int[] num_config = new int[1]; mEgl.eglChooseConfig(mEglDisplay, configSpec, configs, 1, num_config); mEglConfig = configs[0]; /* * Create an OpenGL ES context. This must be done only once, an * OpenGL context is a somewhat heavy object. */ mEglContext = mEgl.eglCreateContext(mEglDisplay, mEglConfig, EGL10.EGL_NO_CONTEXT, null); mEglSurface = null; } /* * Create and return an OpenGL surface */ public GL createSurface(SurfaceHolder holder) { /* * The window size has changed, so we need to create a new * surface. */ if (mEglSurface != null) { /* * Unbind and destroy the old EGL surface, if * there is one. */ mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); mEgl.eglDestroySurface(mEglDisplay, mEglSurface); } /* * Create an EGL surface we can render into. */ mEglSurface = mEgl.eglCreateWindowSurface(mEglDisplay, mEglConfig, holder, null); /* * Before we can issue GL commands, we need to make sure * the context is current and bound to a surface. */ mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext); GL gl = mEglContext.getGL(); return gl; } /** * Display the current render surface. * @return false if the context has been lost. */ public boolean swap() { mEgl.eglSwapBuffers(mEglDisplay, mEglSurface); /* * Always check for EGL_CONTEXT_LOST, which means the context * and all associated data were lost (For instance because * the device went to sleep). We need to sleep until we * get a new surface. */ return mEgl.eglGetError() != EGL11.EGL_CONTEXT_LOST; } public void finish() { if (mEglSurface != null) { mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); mEgl.eglDestroySurface(mEglDisplay, mEglSurface); mEglSurface = null; } if (mEglContext != null) { mEgl.eglDestroyContext(mEglDisplay, mEglContext); mEglContext = null; } if (mEglDisplay != null) { mEgl.eglTerminate(mEglDisplay); mEglDisplay = null; } } EGL10 mEgl; EGLDisplay mEglDisplay; EGLSurface mEglSurface; EGLConfig mEglConfig; EGLContext mEglContext;}

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • android 上传视频文件实例,含服务器源码下载
    android 上传视频文件实例,含服务器源码下载
    2013-07-18下载
    积分:1
  • android tab切换效果示例源码
    android tab切换效果示例源码
    2014-05-17下载
    积分:1
  • Android应用源码之Android轻量级sqlite orm框架.zip
    【实例简介】
    2021-09-07 00:31:14下载
    积分:1
  • autojs支付宝自动偷能量
    autojs支付宝自动偷能量
    2020-11-04下载
    积分:1
  • android 网络图片下载 示例源码
    很好的下载图片的工具类,特别是结合listview一起用,废话不多说,直接上源码
    2014-03-26下载
    积分:1
  • android 可展的分组实例源码下载(expandlistview)
    expandlistview,可展开 折叠
    2015-01-15下载
    积分:1
  • android中不错的ExpandableListView实例效果源码
    一、ExpandableListView介绍     一个垂直滚动的显示两个级别(Child,Group)列表项的视图,列表项来自ExpandableListAdapter 。组可以单独展开。   1.重要方法       expandGroup(int groupPos) :在分组列表视图中展开一组,      setSelectedGroup(int groupPosition) :设置选择指定的组。      setSelectedChild(int groupPosition, int childPosition, boolean shouldExpandGroup) :设置选择指定的子项。      getPackedPositionGroup(long packedPosition) :返回所选择的组      getPackedPositionForChild(int groupPosition, int childPosition) :返回所选择的子项      getPackedPositionType(long packedPosition) :返回所选择项的类型(Child,Group)      isGroupExpanded(int groupPosition) :判断此组是否展开  2.代码:ExpandableListContextMenuInfo menuInfo=(ExpandableListContextMenuInfo)item.getMenuInfo();String title=((TextView)menuInfo.targetView).getText().toString();int type=ExpandableListView.getPackedPositionType(menuInfo.packedPosition);if (type==ExpandableListView.PACKED_POSITION_TYPE_CHILD) {int groupPos =ExpandableListView.getPackedPositionGroup(menuInfo.packedPosition);int childPos =ExpandableListView.getPackedPositionChild(menuInfo.packedPosition);二、ExpandableListAdapter    一个接口,将基础数据链接到一个ExpandableListView。此接口的实施将提供访问Child的数据(由组分类),并实例化的Child和Group。 getChildId(int groupPosition, int childPosition) 获取与在给定组给予孩子相关的数据。     getChildrenCount(int groupPosition) 返回在指定Group的Child数目。
    2013-03-07下载
    积分:1
  • android 省市区三级联动
    android 省市区三级联动
    2017-07-18下载
    积分:1
  • android activity 声明周期测试实例
    activity声明周期测试
    2013-04-11下载
    积分:1
  • android 控制LED灯以及门禁关例子(智能家居)
    android 控制LED灯以及门禁开关例子(智能家居)
    2015-08-11下载
    积分:1
  • 696518资源总数
  • 106222会员总数
  • 14今日下载