Java Code Examples for android.opengl.GLES20#glTexParameterf()
The following examples show how to use
android.opengl.GLES20#glTexParameterf() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: OpenGlUtils.java From SimpleVideoEditor with Apache License 2.0 | 6 votes |
public static int loadTexture(final Bitmap img, final int usedTexId, final boolean recycle) { int textures[] = new int[1]; if (usedTexId == NO_TEXTURE) { GLES20.glGenTextures(1, textures, 0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, img, 0); } else { GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, usedTexId); GLUtils.texSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, img); textures[0] = usedTexId; } if (recycle) { img.recycle(); } return textures[0]; }
Example 2
Source File: Texture2dProgram.java From LiveVideoBroadcaster with Apache License 2.0 | 6 votes |
/** * Creates a texture object suitable for use with this program. * <p> * On exit, the texture will be bound. */ public int createTextureObject() { int[] textures = new int[1]; GLES20.glGenTextures(1, textures, 0); GlUtil.checkGlError("glGenTextures"); int texId = textures[0]; GLES20.glBindTexture(mTextureTarget, texId); GlUtil.checkGlError("glBindTexture " + texId); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); GlUtil.checkGlError("glTexParameter"); return texId; }
Example 3
Source File: EglViewport.java From Lassi-Android with MIT License | 6 votes |
public int createTexture() { int[] textures = new int[1]; GLES20.glGenTextures(1, textures, 0); check("glGenTextures"); int texId = textures[0]; GLES20.glBindTexture(mTextureTarget, texId); check("glBindTexture " + texId); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); check("glTexParameter"); return texId; }
Example 4
Source File: Texture2dProgram.java From kickflip-android-sdk with Apache License 2.0 | 6 votes |
/** * Creates a texture object suitable for use with this program. * <p> * On exit, the texture will be bound. */ public int createTextureObject() { int[] textures = new int[1]; GLES20.glGenTextures(1, textures, 0); GlUtil.checkGlError("glGenTextures"); int texId = textures[0]; GLES20.glBindTexture(mTextureTarget, texId); GlUtil.checkGlError("glBindTexture " + texId); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); GlUtil.checkGlError("glTexParameter"); return texId; }
Example 5
Source File: GlUtil.java From PLDroidMediaStreaming with Apache License 2.0 | 6 votes |
public static int createTexture(int textureTarget, @Nullable Bitmap bitmap, int minFilter, int magFilter, int wrapS, int wrapT) { int[] textureHandle = new int[1]; GLES20.glGenTextures(1, textureHandle, 0); GlUtil.checkGlError("glGenTextures"); GLES20.glBindTexture(textureTarget, textureHandle[0]); GlUtil.checkGlError("glBindTexture " + textureHandle[0]); GLES20.glTexParameterf(textureTarget, GLES20.GL_TEXTURE_MIN_FILTER, minFilter); GLES20.glTexParameterf(textureTarget, GLES20.GL_TEXTURE_MAG_FILTER, magFilter); //线性插值 GLES20.glTexParameteri(textureTarget, GLES20.GL_TEXTURE_WRAP_S, wrapS); GLES20.glTexParameteri(textureTarget, GLES20.GL_TEXTURE_WRAP_T, wrapT); if (bitmap != null) { GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0); } GlUtil.checkGlError("glTexParameter"); return textureHandle[0]; }
Example 6
Source File: UgiRendererView.java From UltraGpuImage with MIT License | 6 votes |
private static int loadTexture(Bitmap bitmap, boolean recycle) { int textures[] = new int[1]; GLES20.glGenTextures(1, textures, 0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0); if (recycle) { bitmap.recycle(); } return textures[0]; }
Example 7
Source File: Texture.java From HokoBlur with Apache License 2.0 | 6 votes |
@Override public void create() { final int[] textureIds = new int[1]; GLES20.glGenTextures(1, textureIds, 0); mTextureId = textureIds[0]; if (mTextureId != 0) { GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureId); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST); onTextureCreated(); } GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); }
Example 8
Source File: VisualizerRenderer.java From MusicVisualization with Apache License 2.0 | 6 votes |
private int genAudioTexture(byte[] buf, int width) { GLES20.glActiveTexture(GLES20.GL_TEXTURE0); final int[] genBuf = new int[1]; GLES20.glGenTextures(1, genBuf, 0); final int texId = genBuf[0]; GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texId); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_NEAREST); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texId); GLES20.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_LUMINANCE, width, 2, 0, GL10.GL_LUMINANCE, GL10.GL_UNSIGNED_BYTE, ByteBuffer.wrap(buf)); return texId; }
Example 9
Source File: ScreenRectangle.java From OpenGLESRecorder with Apache License 2.0 | 6 votes |
private void createTexture(int width, int height) { int [] textures = new int[1]; GLES20.glGenTextures(1, textures, 0); GLUtil.checkGLError("genTexture"); int textureId = textures[0]; GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureId); GLUtil.checkGLError("bindTexture"); GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGB, width, height, 0, GLES20.GL_RGB, GLES20.GL_UNSIGNED_SHORT_5_6_5, null); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER,GLES20.GL_NEAREST); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_MAG_FILTER,GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S,GLES20.GL_MIRRORED_REPEAT); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T,GLES20.GL_MIRRORED_REPEAT); GLUtil.checkGLError("setTextureParams"); mOffScreenTexture = textureId; GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); }
Example 10
Source File: GlUtil.java From rtmp-rtsp-stream-client-java with Apache License 2.0 | 5 votes |
public static void createExternalTextures(int cantidad, int[] texturesId, int position) { GLES20.glGenTextures(cantidad, texturesId, position); for (int i = 0; i < cantidad; i++) { GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + position + i); GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, texturesId[position + i]); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); } }
Example 11
Source File: FBO.java From In77Camera with MIT License | 5 votes |
public FBO create(int width,int height){ int[] frameBuffers = new int[1]; int[] frameBufferTextures = new int[1]; GLES20.glGenFramebuffers(1, frameBuffers, 0); GLES20.glGenTextures(1, frameBufferTextures, 0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, frameBufferTextures[0]); GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width,height, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frameBuffers[0]); GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, frameBufferTextures[0], 0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); frameBuffer=frameBuffers[0]; frameBufferTexture=frameBufferTextures[0]; return this; }
Example 12
Source File: FBO.java From Pano360 with MIT License | 5 votes |
public FBO create(int width,int height){ int[] frameBuffers = new int[1]; int[] frameBufferTextures = new int[1]; GLES20.glGenFramebuffers(1, frameBuffers, 0); GLES20.glGenTextures(1, frameBufferTextures, 0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, frameBufferTextures[0]); GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width,height, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frameBuffers[0]); GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, frameBufferTextures[0], 0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); frameBuffer=frameBuffers[0]; frameBufferTexture=frameBufferTextures[0]; return this; }
Example 13
Source File: OpenGlUtils.java From Fatigue-Detection with MIT License | 5 votes |
public static int loadTexture(Bitmap paramBitmap, int paramInt, boolean paramBoolean) { int[] arrayOfInt = new int[1]; if (paramInt == -1) { GLES20.glGenTextures(1, arrayOfInt, 0); GLES20.glBindTexture(3553, arrayOfInt[0]); GLES20.glTexParameterf(3553, 10240, 9729.0F); GLES20.glTexParameterf(3553, 10241, 9729.0F); GLES20.glTexParameterf(3553, 10242, 33071.0F); GLES20.glTexParameterf(3553, 10243, 33071.0F); GLUtils.texImage2D(3553, 0, paramBitmap, 0); } else { GLES20.glBindTexture(3553, paramInt); GLUtils.texSubImage2D(3553, 0, 0, 0, paramBitmap); arrayOfInt[0] = paramInt; } if (paramBoolean) { paramBitmap.recycle(); } return arrayOfInt[0]; }
Example 14
Source File: MyGLRenderer.java From myMediaCodecPlayer-for-FPV with MIT License | 4 votes |
@Override public void onSurfaceCreated(GL10 glUnused, EGLConfig config) { GLES20.glClearColor(0.0f, 0.0f, 0.07f, 0.0f); // mProgram = OpenGLHelper.createProgram(MyGLRendererHelper.getVertexShader(), MyGLRendererHelper.getFragmentShader()); maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition"); OpenGLHelper.checkGlError("glGetAttribLocation aPosition"); maTextureHandle = GLES20.glGetAttribLocation(mProgram, "aTextureCoord"); OpenGLHelper.checkGlError("glGetAttribLocation aTextureCoord"); maMVPMatrixHandle=GLES20.glGetUniformLocation(mProgram,"uMVPMatrix"); OpenGLHelper.checkGlError("glGetAttribLocation uMVPMatrix"); //we have to create the texture for the overdraw,too GLES20.glGenTextures(2, textures, 0); mTextureID = textures[0]; //I don't know why,but it seems like when you use both external and normal textures,you have to use normal textures for the first, //and the external texture for the second unit; bug ? GLES20.glActiveTexture(GLES20.GL_TEXTURE1); GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID); OpenGLHelper.checkGlError("glBindTexture mTextureID"); GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); //mSurfaceTexture = new SurfaceTexture(mTextureID); //Enable double buffering,because MediaCodec and OpenGL don't have any synchronisation ? //For me,it seems like db hasn't really implemented or has no effect mSurfaceTexture = new SurfaceTexture(mTextureID,false); mDecoderSurface=new Surface(mSurfaceTexture); mDecoder=new UdpReceiverDecoderThread(mDecoderSurface,5000, mContext); mDecoder.startDecoding(); mOSD=new MyOSDReceiverRenderer(mContext,textures,mLeftEyeViewM,mRightEyeViewM,mProjM,videoFormat, modelDistance, videoDistance); mOSD.startReceiving(); mHeadTracker=HeadTracker.createFromContext(mContext); mHeadTracker.setNeckModelEnabled(true); final Phone.PhoneParams phoneParams = PhoneParams.readFromExternalStorage(); if (phoneParams != null) { this.mHeadTracker.setGyroBias(phoneParams.gyroBias); } if (headTracking) { mHeadTracker.startTracking(); } if(swapIntervallZero){ EGL14.eglSwapInterval(EGL14.eglGetCurrentDisplay(), 0); } }
Example 15
Source File: GlUtil.java From kickflip-android-sdk with Apache License 2.0 | 4 votes |
public static int createTextureWithTextContent (String text){ // Create an empty, mutable bitmap Bitmap bitmap = Bitmap.createBitmap(256, 256, Bitmap.Config.ARGB_8888); // get a canvas to paint over the bitmap Canvas canvas = new Canvas(bitmap); canvas.drawARGB(0,0,255,0); // get a background image from resources // note the image format must match the bitmap format // Drawable background = context.getResources().getDrawable(R.drawable.background); // background.setBounds(0, 0, 256, 256); // background.draw(canvas); // draw the background to our bitmap // Draw the text Paint textPaint = new Paint(); textPaint.setTextSize(32); textPaint.setAntiAlias(true); textPaint.setARGB(0xff, 0xff, 0xff, 0xff); // draw the text centered canvas.drawText(text, 16,112, textPaint); int[] textures = new int[1]; //Generate one texture pointer... GLES20.glGenTextures(1, textures, 0); //...and bind it to our array GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]); //Create Nearest Filtered Texture GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); //Different possible texture parameters, e.g. GLES20.GL_CLAMP_TO_EDGE GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_REPEAT); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_REPEAT); //Alpha blending //GLES20.glEnable(GLES20.GL_BLEND); //GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA); //Use the Android GLUtils to specify a two-dimensional texture image from our bitmap GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0); //Clean up bitmap.recycle(); return textures[0]; }
Example 16
Source File: FboTexture.java From PhotoMovie with Apache License 2.0 | 4 votes |
private void prepareFrameBuffer(int width, int height) { GlUtil.checkGlError("prepareFramebuffer start"); int[] values = new int[1]; // Create a texture object and bind it. This will be the color buffer. GLES20.glGenTextures(1, values, 0); GlUtil.checkGlError("glGenTextures"); int offscreenTexture = values[0]; // expected > 0 GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, offscreenTexture); GlUtil.checkGlError("glBindTexture " + offscreenTexture); // Create texture storage. GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width, height, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); // Set parameters. We're probably using non-power-of-two dimensions, so // some values may not be available for use. GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); GlUtil.checkGlError("glTexParameter"); // Create framebuffer object and bind it. GLES20.glGenFramebuffers(1, values, 0); GlUtil.checkGlError("glGenFramebuffers"); int framebuffer = values[0]; // expected > 0 GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, framebuffer); GlUtil.checkGlError("glBindFramebuffer " + framebuffer); // Create a depth buffer and bind it. GLES20.glGenRenderbuffers(1, values, 0); GlUtil.checkGlError("glGenRenderbuffers"); mRenderBuffer = values[0]; // expected > 0 GLES20.glBindRenderbuffer(GLES20.GL_RENDERBUFFER, mRenderBuffer); GlUtil.checkGlError("glBindRenderbuffer " + mRenderBuffer); // Allocate storage for the depth buffer. GLES20.glRenderbufferStorage(GLES20.GL_RENDERBUFFER, GLES20.GL_DEPTH_COMPONENT16, width, height); GlUtil.checkGlError("glRenderbufferStorage"); // Attach the depth buffer and the texture (color buffer) to the framebuffer object. GLES20.glFramebufferRenderbuffer(GLES20.GL_FRAMEBUFFER, GLES20.GL_DEPTH_ATTACHMENT, GLES20.GL_RENDERBUFFER, mRenderBuffer); GlUtil.checkGlError("glFramebufferRenderbuffer"); GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, offscreenTexture, 0); GlUtil.checkGlError("glFramebufferTexture2D"); // See if GLES is happy with all this. int status = GLES20.glCheckFramebufferStatus(GLES20.GL_FRAMEBUFFER); if (status != GLES20.GL_FRAMEBUFFER_COMPLETE) { throw new RuntimeException("Framebuffer not complete, status=" + status); } // Switch back to the default framebuffer. GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); GlUtil.checkGlError("prepareFramebuffer done"); mFrameBuffer = framebuffer; mId = offscreenTexture; }
Example 17
Source File: TextureRenderer.java From VideoProcessor with Apache License 2.0 | 4 votes |
public void surfaceCreated() { mProgram = createProgram(VERTEX_SHADER, FRAGMENT_SHADER); if (mProgram == 0) { throw new RuntimeException("failed creating program"); } maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition"); checkGlError("glGetAttribLocation aPosition"); if (maPositionHandle == -1) { throw new RuntimeException("Could not get attrib location for aPosition"); } maTextureHandle = GLES20.glGetAttribLocation(mProgram, "aTextureCoord"); checkGlError("glGetAttribLocation aTextureCoord"); if (maTextureHandle == -1) { throw new RuntimeException("Could not get attrib location for aTextureCoord"); } muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix"); checkGlError("glGetUniformLocation uMVPMatrix"); if (muMVPMatrixHandle == -1) { throw new RuntimeException("Could not get attrib location for uMVPMatrix"); } muSTMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uSTMatrix"); checkGlError("glGetUniformLocation uSTMatrix"); if (muSTMatrixHandle == -1) { throw new RuntimeException("Could not get attrib location for uSTMatrix"); } int[] textures = new int[1]; GLES20.glGenTextures(1, textures, 0); mTextureID = textures[0]; GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, mTextureID); checkGlError("glBindTexture mTextureID"); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); checkGlError("glTexParameter"); Matrix.setIdentityM(mMVPMatrix, 0); if (rotationAngle != 0) { Matrix.rotateM(mMVPMatrix, 0, rotationAngle, 0, 0, 1); } }
Example 18
Source File: TextureRender.java From phoenix with Apache License 2.0 | 4 votes |
/** * Initializes GL state. Call this after the EGL surface has been created and made current. */ public void surfaceCreated() { mProgram = createProgram(VERTEX_SHADER, FRAGMENT_SHADER); if (mProgram == 0) { throw new RuntimeException("failed creating program"); } maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition"); checkGlError("glGetAttribLocation aPosition"); if (maPositionHandle == -1) { throw new RuntimeException("Could not get attrib location for aPosition"); } maTextureHandle = GLES20.glGetAttribLocation(mProgram, "aTextureCoord"); checkGlError("glGetAttribLocation aTextureCoord"); if (maTextureHandle == -1) { throw new RuntimeException("Could not get attrib location for aTextureCoord"); } muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix"); checkGlError("glGetUniformLocation uMVPMatrix"); if (muMVPMatrixHandle == -1) { throw new RuntimeException("Could not get attrib location for uMVPMatrix"); } muSTMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uSTMatrix"); checkGlError("glGetUniformLocation uSTMatrix"); if (muSTMatrixHandle == -1) { throw new RuntimeException("Could not get attrib location for uSTMatrix"); } int[] textures = new int[1]; GLES20.glGenTextures(1, textures, 0); mTextureID = textures[0]; GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, mTextureID); checkGlError("glBindTexture mTextureID"); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); checkGlError("glTexParameter"); }
Example 19
Source File: VideoResourceInput.java From AndroidFastImageProcessing with MIT License | votes |
@Override protected void initWithGLContext() { ready = false; try { player = MediaPlayer.create(context, id); } catch (Exception e) { Log.e("VideoPlayer", "Failed to load video"); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); Log.e("VideoPlayer", sw.toString()); player.release(); } setRenderSize(player.getVideoWidth(), player.getVideoHeight()); super.initWithGLContext(); int[] textures = new int[1]; GLES20.glGenTextures(1, textures, 0); GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textures[0]); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); texture_in = textures[0]; videoTex = new SurfaceTexture(texture_in); videoTex.setOnFrameAvailableListener(this); Surface surface = new Surface(videoTex); player.setSurface(surface); ready = true; if(startWhenReady) { player.start(); } }
Example 20
Source File: VideoResourceInput.java From UltimateAndroid with Apache License 2.0 | votes |
@Override protected void initWithGLContext() { ready = false; try { player = MediaPlayer.create(context, id); } catch (Exception e) { Log.e("VideoPlayer", "Failed to load video"); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); Log.e("VideoPlayer", sw.toString()); player.release(); } setRenderSize(player.getVideoWidth(), player.getVideoHeight()); super.initWithGLContext(); int[] textures = new int[1]; GLES20.glGenTextures(1, textures, 0); GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textures[0]); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); texture_in = textures[0]; videoTex = new SurfaceTexture(texture_in); videoTex.setOnFrameAvailableListener(this); Surface surface = new Surface(videoTex); player.setSurface(surface); ready = true; if(startWhenReady) { player.start(); } }