草庐IT

GL_TEXTURE_BUFFER

全部标签

java - Opengl ES 2.0 : Get texture size and other info

问题的上下文是Android环境下的OpenGLES2.0。我有一个纹理。显示或使用都没有问题。是否有一种方法可以简单地从绑定(bind)ID开始了解其宽度和高度以及其他信息(如内部格式)?我需要在不知道纹理大小的情况下将纹理保存到位图。 最佳答案 不在ES2.0中。功能不存在实际上有点令人惊讶。您可以获取渲染缓冲区的大小,但不能获取纹理的大小,这看起来不一致。唯一可用的是您可以使用glGetTexParameteriv()获得的值,它们是纹理的FILTER和WRAP参数。它仍然不在ES3.0中。仅在ES3.1中,添加了glGetT

android - GLES 3.0 包括 gl2ext.h

根据KhronosOpenGLESRegistry,GLES3.0的扩展头实际上是.gl3ext.h应该为空,并且仅为了遗留兼容性而提供。因此,如果你想包含GLES3.0header,你应该这样做:#include#include但是,使用AndroidNDK进行编译时,似乎是gl2ext.h的版本内部确实#include,出现以下错误*(我正在使用API-19进行编译):C:\android-ndk-r10e\platforms\android-19\arch-arm\usr\include\GLES2\gl2ext.h(6):includesthisheader:C:\androi

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。参数签名是:

Node.js之Buffer(缓冲器)

Buffer的概念Buffer是一个类似于数组的对象,用于表示固定长度的字节序列Bufer本质是一段内存空间,专门用来处理二进制数据。Buffer创建方法//1.allocletbuf1=Buffer.alloc(10)//使用alloc创造buffer的方法是一个二进制类都会归零console.log(buf1)////2.allocUnsafeletbuf2=Buffer.allocUnsafe(10)//与alloc方法是一样的但不安全可能会包含旧的内存数据//那为什么我们不直接使用alloc方法因为allocUnsafe方法比alloc方法快一些不需要做归零操作console.log(

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

安卓消息 "Cannot generate texture from bitmap"

我正在使用Gallery-widget和大量位图。我使用Bitmap.recycle()删除位图。结果我在logcat上看到了下一条消息:08-1817:49:26.020:INFO/dalvikvm-heap(13847):Growheap(fragcase)to22.373MBfor2457616-byteallocation08-1817:49:26.060:DEBUG/dalvikvm(13847):GC_FOR_ALLOCfreed1K,36%free22835K/35143K,paused27ms08-1817:49:26.230:DEBUG/dalvikvm(13847)

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

安卓报错getSlotFromBufferLocked : unknown buffer: 0xa9fb8d90

我正在开发一个使用material-introdependencies的安卓应用程序对于介绍幻灯片,但是当幻灯片完成并尝试从Slide(MaterialintroActivity)切换到我的主要Activity时,应用程序崩溃了。LogCat07-2612:42:19.566897-944/com.naive.LISTYE/Surface:getSlotFromBufferLocked:unknownbuffer:0xa9fb8d90AppManifest代码MainIntroActivitypublicclassMainIntroActivityextendsIntroActivit

环形缓冲区 Ring Buffer 的实现

环形缓冲区(CircularBuffer或RingBuffer)是一种数据结构,它在逻辑上形成一个闭环。这种结构非常适用于需要固定大小的缓冲区的情况,如音频处理、网络通信、实时数据传输等。环形缓冲区的主要特点和用途包括:固定大小:环形缓冲区的大小在创建时确定,并且在其生命周期内保持不变。高效的数据插入和移除:在环形缓冲区中添加或移除元素(通常是在头部添加,在尾部移除)是非常高效的,因为这些操作不需要移动缓冲区中的其他元素。循环覆盖:当缓冲区填满时,新添加的元素将覆盖最早添加的元素。这使得环形缓冲区非常适用于处理流式数据,其中只关心最近的数据。无需动态内存分配:由于环形缓冲区的大小是固定的,因此

java - 如何捕获错误 'Bitmap too large to be uploaded into a texture'

我的android应用程序处理非常大的位图。因此,我在ImageView上关闭了硬件加速。但是,一些用户已将开发人员选项“强制GPU加速”设置为打开。这会导致错误“位图太大,无法上传到纹理中”。如果我使用isHardwareAccelerated()检查View,它总是返回false。有什么方法可以捕获OpenGL错误“位图太大而无法上传到纹理中”吗? 最佳答案 位图由像素组成,您可以计算位图矩阵中的像素数,为您的位图像素数设置一个限制。在OpenGl中我不能说,但通常我们可以轻松处理它们,也有一种方法位图.inSampleSize