当前位置: 首页 > news >正文

铁岭卫生职业学院官方网站建设/seo兼职外包

铁岭卫生职业学院官方网站建设,seo兼职外包,新乡做网站公司电话,怎么提高网站加载速度慢在android中使用OpenGL ES需要三个步骤: 1. 创建GLSurfaceView组件,使用Activity来显示GLSurfaceView组建。 2. 为GLSurfaceView组建创建GLSurfaceView.Renderer实例,实现GLSurfaceView.Renderer类时需要实现该接口里的三个方法&#xff1a…

在android中使用OpenGL ES需要三个步骤:

1. 创建GLSurfaceView组件,使用Activity来显示GLSurfaceView组建。

2. 为GLSurfaceView组建创建GLSurfaceView.Renderer实例,实现GLSurfaceView.Renderer类时需要实现该接口里的三个方法:

  • abstract void onDrawFrame(GL10 gl):Called to draw the current frame.

  • abstract void onSurfaceChanged(GL10 gl, int width, int height):Called when the surface changed size.

  • abstract void onSurfaceCreated(GL10 gl, EGLConfig config):Called when the surface is created or recreated.

3. 调用GLSurfaceView组建的setRenderer (GLSurfaceView.Renderer renderer) 方法指定Renderer对象,该对象将会完成GLSurfaceView里3D图形的绘制。

然后来看一个Demo,首先是主Activity:

package com.example.androidgldemo;import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;public class AndroidGLDemo extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);GLSurfaceView glView = new GLSurfaceView(this);AndroidGLDemoRenderer renderer = new AndroidGLDemoRenderer();glView.setRenderer(renderer);setContentView(glView);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}
}

然后是Renderer的实现:

package com.example.androidgldemo;import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;import android.opengl.GLSurfaceView.Renderer;public class AndroidGLDemoRenderer implements Renderer {float[] mTriangleData = new float[] {0.1f, 0.6f, 0.0f,-0.3f, 0.0f, 0.0f,0.3f, 0.1f, 0.0f};int[] mTriangleColor = new int[] {65535, 0, 0, 0, 0, 65535, 0, 0,0, 0, 65535, 0,};float[] mRectData = new float[] {0.4f, 0.4f, 0.0f,0.4f, -0.4f, 0.0f,-0.4f, 0.4f, 0.0f, -0.4f, -0.4f, 0.0f};int[] mRectColor = new int[] {0, 65535, 0, 0, 0, 0, 65535, 0, 65535, 0, 0, 0,65535, 65535, 0, 0,};FloatBuffer mTriangleDataBuffer;IntBuffer mTriangleColorBuffer;FloatBuffer mRectDataBuffer;IntBuffer mRectColorBuffer;public AndroidGLDemoRenderer() {mTriangleDataBuffer= bufferUtil(mTriangleData);mTriangleColorBuffer = bufferUtil(mTriangleColor);mRectDataBuffer = bufferUtil(mRectData);mRectColorBuffer = bufferUtil(mRectColor);}@Overridepublic void onDrawFrame(GL10 gl) {gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);gl.glEnableClientState(GL10.GL_COLOR_ARRAY);gl.glMatrixMode(GL10.GL_MODELVIEW);gl.glLoadIdentity();gl.glTranslatef(-0.6f, 0.0f, -1.5f);gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mTriangleDataBuffer);gl.glColorPointer(4, GL10.GL_FIXED, 0, mTriangleColorBuffer);gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);gl.glLoadIdentity();gl.glTranslatef(0.6f, 0.8f, -1.5f);gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mRectDataBuffer);gl.glColorPointer(4, GL10.GL_FIXED, 0, mRectColorBuffer);gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);gl.glFinish();gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);}@Overridepublic void onSurfaceChanged(GL10 gl, int width, int height) {gl.glViewport(0, 0, width, height);gl.glMatrixMode(GL10.GL_PROJECTION);gl.glLoadIdentity();float ratio = (float) width / height;gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);}@Overridepublic void onSurfaceCreated(GL10 gl, EGLConfig config) {gl.glDisable(GL10.GL_DITHER);gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);gl.glClearColor(0, 0, 0, 0);gl.glShadeModel(GL10.GL_SMOOTH);gl.glEnable(GL10.GL_DEPTH_TEST);gl.glDepthFunc(GL10.GL_LEQUAL);}public IntBuffer bufferUtil(int []arr){  IntBuffer buffer;ByteBuffer qbb = ByteBuffer.allocateDirect(arr.length * 4);qbb.order(ByteOrder.nativeOrder());buffer = qbb.asIntBuffer();buffer.put(arr);buffer.position(0);return buffer;}public FloatBuffer bufferUtil(float []arr){  FloatBuffer buffer;ByteBuffer qbb = ByteBuffer.allocateDirect(arr.length * 4);qbb.order(ByteOrder.nativeOrder());buffer = qbb.asFloatBuffer();buffer.put(arr);buffer.position(0);return buffer;}
}

注意构造函数中那些Buffer的创建方式。在这个地方,不能直接使用FloatBuffer/IntBuffer 的wrap() method。直接用这个method创建出来的buffer会导致JE:

02-26 23:12:08.945: E/OpenGLES(2750): Application com.example.androidgldemo (SDK target 17) called a GL11 Pointer method with an indirect Buffer.
02-26 23:12:08.968: W/dalvikvm(2750): threadid=11: thread exiting with uncaught exception (group=0x40d57930)
02-26 23:12:08.984: E/AndroidRuntime(2750): FATAL EXCEPTION: GLThread 16938
02-26 23:12:08.984: E/AndroidRuntime(2750): java.lang.IllegalArgumentException: Must use a native order direct Buffer
02-26 23:12:08.984: E/AndroidRuntime(2750): 	at com.google.android.gles_jni.GLImpl.glVertexPointerBounds(Native Method)
02-26 23:12:08.984: E/AndroidRuntime(2750): 	at com.google.android.gles_jni.GLImpl.glVertexPointer(GLImpl.java:1122)
02-26 23:12:08.984: E/AndroidRuntime(2750): 	at com.example.androidgldemo.AndroidGLDemoRenderer.onDrawFrame(AndroidGLDemoRenderer.java:63)
02-26 23:12:08.984: E/AndroidRuntime(2750): 	at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1516)
02-26 23:12:08.984: E/AndroidRuntime(2750): 	at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)


转载于:https://my.oschina.net/wolfcs/blog/110507

http://www.lbrq.cn/news/803917.html

相关文章:

  • 网站建设厃金手指花总十一/谷歌搜索引擎免费入口 台湾
  • 厦门电子网站建设/google play官网
  • 做水果苹果大的网站/广州企业网站建设
  • 五常市网站/网站如何建立
  • 部门门户网站建设的目的/腾讯广告推广平台
  • 肇庆市有那家做网站的/友情链接分析
  • 网站建设制作需要多少钱/关键词快速排名不限行业
  • 做兼职什么网站靠谱/什么叫软文推广
  • 揭阳模板建站开发公司/平台广告推广
  • wordpress 淘客主题/北京网络seo推广公司
  • 网站建设公司简介模板下载/郑州seo优化外包顾问
  • 企业营销型网站有特点/一站式网站建设公司
  • 建手机网站怎么收费/2345网址导航电脑版官网
  • 一个网站的建设流程有哪些资料/7月新闻大事件30条
  • 天津外贸网站建设/谷歌优化方法
  • 网站锚文本怎么做/今日头条国际军事新闻
  • 一般通过人体的电流超过多大/seo优化排名是什么
  • 凡科的网站做seo比较难/百度搜索指数排行
  • 南京高端网站建设公司哪家好/建设网站制作公司
  • 哪里做网站做的好/企业推广方式有哪些
  • 个人网站怎么做联盟推广/广州seo快速排名
  • 十大电商代运营服务商/windows优化软件
  • 武汉网页设计公司/seo是什么的
  • 公司建设网站算入什么会计科目/重庆今日头条新闻消息
  • 制作网站建设的公司/云搜索
  • wordpress 留言板插件/公众号seo排名
  • wordpress仿站模板制作教程/南京seo公司
  • 网站运营设计/优秀营销软文范例100字
  • wordpress orchidv 插件/seo与sem的区别与联系
  • 领星erp系统/seo搜索排名优化是什么意思
  • Typora v1.10.8 好用的 Markdown 编辑器
  • Qt 开发 IDE 插件开发指南
  • Django模型查询与性能调优:告别N+1问题
  • 【科普】怎么理解Modbus、TCP、UDP
  • TCP RTO 与丢包检测
  • Rust × WebAssembly 项目脚手架详解