Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb8b1fe9 authored by Alex Sakhartchouk's avatar Alex Sakhartchouk
Browse files

Using surface texture as a default renderscript surface.

Change-Id: I969aa56683fdf4538ff54fa1065dada77cf9d04d
parent 9c821d71
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@
#include "rsdVertexArray.h"
#include "rsdFrameBufferObj.h"

#include <gui/SurfaceTextureClient.h>

using namespace android;
using namespace android::renderscript;

@@ -299,14 +301,15 @@ bool rsdGLInit(const Context *rsc) {
    }
    gGLContextCount++;

    sp<SurfaceTexture> st(new SurfaceTexture(123));
    sp<SurfaceTextureClient> stc(new SurfaceTextureClient(st));
    dc->gl.egl.surfaceDefault = eglCreateWindowSurface(dc->gl.egl.display, dc->gl.egl.config,
                                                       static_cast<ANativeWindow*>(stc.get()),
                                                       NULL);

    EGLint pbuffer_attribs[] = { EGL_WIDTH, 1, EGL_HEIGHT, 1, EGL_NONE };
    rsc->setWatchdogGL("eglCreatePbufferSurface", __LINE__, __FILE__);
    dc->gl.egl.surfaceDefault = eglCreatePbufferSurface(dc->gl.egl.display, dc->gl.egl.config,
                                                        pbuffer_attribs);
    checkEglError("eglCreatePbufferSurface");
    checkEglError("eglCreateWindowSurface");
    if (dc->gl.egl.surfaceDefault == EGL_NO_SURFACE) {
        ALOGE("eglCreatePbufferSurface returned EGL_NO_SURFACE");
        ALOGE("eglCreateWindowSurface returned EGL_NO_SURFACE");
        rsdGLShutdown(rsc);
        rsc->setWatchdogGL(NULL, 0, NULL);
        return false;