草庐IT

GL_UNSIGNED_SHORT

全部标签

android - 如何在 Open GL ES Android 上设置背景颜色

我现在正在玩第8课http://insanitydesign.com/wp/projects/nehe-android-ports/我想将背景颜色从黑色更改为白色。为了在onDrawFrame()开始时执行此操作,我调用了gl.glClearColor(1.0f,0.0f,0.0f,0.0f);这确实设置了一个白色背景屏幕,但也导致屏幕上没有显示任何其他内容!因此,显然这是一种不正确的方法,但是为什么,我该如何解决呢?!非常感谢。编辑(5天后):根本没有人知道吗?!! 最佳答案 白屏是因为您将alpha值设置为0.0f。参数签名是:

Android、GL、沉浸模式下的屏幕尺寸

我正在使用Nexus4KitKat4.4进行开发,并且尝试将IMMERSIVEMODE添加到我的游戏中。我需要屏幕高度才能正确设置glViewport。我以前用过@SuppressWarnings("deprecation")@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)publicstaticintgetScreenHeight(){if(Main.m_activity==null)return-1;Displaydisplay=Main.m_activity.getWindowManager().getDefaultDisplay();i

java - GLES2.0 : Use GL_TEXTURE_EXTERNAL_OES via glEGLImageTargetTexture2DOES

我想在Java中渲染一个图像缓冲区(在这种情况下,NDK不是一个选项)并通过GL_TEXTURE_EXTERNAL_OES将其传递给着色器.glTexImage2D不起作用,如spec中所述.但是函数glEGLImageTargetTexture2DOES只能通过GLES11Ext类使用,使用起来似乎有点不对。无论如何,我试过了,它给了我GL_INVALID_OPERATION,这应该发生在以下情况下:IftheGLisunabletospecifyatextureobjectusingthesuppliedeglImageOES(if,forexample,referstoamult

Android AIDL支持 "short"类型吗?

AIDL支持短类型吗?http://developer.android.com/guide/developing/tools/aidl.html它说“Java编程语言中的所有原始类型(如int、long、char、boolean等)”但是在AIDL中好像不能用short。谢谢! 最佳答案 我认为它不会:/所以使用一个int并在之后将其转换回short 关于AndroidAIDL支持"short"类型吗?,我们在StackOverflow上找到一个类似的问题:

java - 从相邻的 GL10 绘图图像中获取线条,解决方案?

我有一张背景图片,我正在使用opengl1.0es绘制。问题是当我将这个小图像绘制到大屏幕时,我得到了这个...模式中的线条/中断不应该存在。我试了很多东西,我想也许我的图集是错误的……怀疑它。我从(0,0,50,50)绘制它,即(x,y,width,height)。检查了很多,仍然得到相同的结果,这是应该的。用下面的for循环尝试了不同的东西......GL10gl=this.glGraphics.getGL();gl.glClear(GL10.GL_COLOR_BUFFER_BIT);guiCam.setViewportAndMatrices();gl.glEnable(GL10.

android - 如何从 ByteBuffer 获取 short[]

我在Android项目中使用JNI代码,其中JNInative函数需要一个short[]参数。但是,原始数据存储为ByteBuffer。我正在尝试按如下方式转换数据格式。ByteBufferrgbBuf=ByteBuffer.allocate(size);...short[]shortArray=(short[])rgbBuf.asShortBuffer().array().clone();但是我在运行上面显示的第二行代码时遇到了以下问题:E/AndroidRuntime(23923):Causedby:java.lang.UnsupportedOperationExceptionE/

android - 是否有屏幕尺寸大于 GL_MAX_TEXTURE_SIZE 的 Android 设备?

我一直在搜索glbenchmark.com对于屏幕尺寸(宽度或高度)大于GL_MAX_TEXTURE_SIZE的设备。我发现超过一百个设备的GL_MAX_VIEWPORT_WIDTH和GL_MAX_VIEWPORT_HEIGHT大于GL_MAX_TEXTURE_SIZE(例如AcerA110),但没有屏幕尺寸的设备大于GL_MAX_TEXTURE_SIZE。所以我假设没有这样的设备。是否有任何规范可以保证每台设备(或Android设备)的屏幕尺寸小于或等于GL_MAX_TEXTURE_SIZE?如果不是,是否有任何设备可以打破我的假设? 最佳答案

Android 设备 GL_MAX_TEXTURE_SIZE 限制,安全纹理大小

我正在使用AndEngine和OpenGLES2.0。我一直在阅读有关GL_MAX_TEXTURE_SIZE以及如何将我的纹理保持在1024x1024以下的内容。我在TMX扩展中使用tilesets之前和同时开始错误(如果你不了解AndEngine,它是什么并不重要)我得到了一个使纹理宽度超过1024px的tileset。我正在考虑将tileset分成两部分,使它们“安全”。但我找不到在过去几年发布的任何设备都在2048x2048下设置了此限制。是否有任何列表或网站可用于按GL_MAX_TEXTURE_SIZE过滤设备?我阅读了以下问题:MinimumrequiredTextureSi

java - 为什么 short 原始类型明显比 long 或 int 慢?

我试图通过将intprimitives更改为shorts来优化Android游戏的RAM使用。在我这样做之前,我对Java中原始类型的性能很感兴趣。所以我使用caliper库创建了这个小测试基准。publicclassBenchmarkTypesextendsBenchmark{@Param("10")privatelongtestLong;@Param("10")privateinttestInt;@Param("10")privateshorttestShort;@Param("5000")privatelongresultLong=5000;@Param("5000")priva

android - 如何停止 Open GL 渲染器

出于某种原因,我需要重新启动GLSurfaceView.Renderer,所以我想在我的应用程序中花点时间第二次调用setRenderer(newRenderer),Android不喜欢这样做,并抛出IllegalStateException说“setRenderer已被调用“……现在,我知道这是因为渲染器附加到GLSurfaceView,我需要解除此渲染器与表面View的绑定(bind),以便我可以再次调用setRenderer。有人对此有解决方案吗?附言:代码如下所示:render=newRenderer(this);setContentView(R.layout.main);gr