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

Commit c88ed5dc authored by Jack Palevich's avatar Jack Palevich Committed by Android (Google) Code Review
Browse files

Merge "Implement the GL11ExtensionPack APIs."

parents 98af636a 8a4de4be
Loading
Loading
Loading
Loading
+950 −96

File changed.

Preview size limit exceeded, changes collapsed.

+14 −8
Original line number Diff line number Diff line
@@ -49,6 +49,12 @@ public class GLImpl implements GL10, GL10Ext, GL11, GL11Ext, GL11ExtensionPack {
    Buffer _matrixIndexPointerOES = null;
    Buffer _weightPointerOES = null;
    
    private boolean haveCheckedExtensions;
    private boolean have_OES_blend_equation_separate;
    private boolean have_OES_blend_subtract;
    private boolean have_OES_framebuffer_object;
    private boolean have_OES_texture_cube_map;

    public GLImpl() {
    }

@@ -1935,7 +1941,7 @@ public class GLImpl implements GL10, GL10Ext, GL11, GL11Ext, GL11ExtensionPack {
        int target
    );

    // C function void glDeleteFramebuffersOES ( GLint n, GLint *framebuffers )
    // C function void glDeleteFramebuffersOES ( GLint n, GLuint *framebuffers )

    public native void glDeleteFramebuffersOES(
        int n,
@@ -1943,14 +1949,14 @@ public class GLImpl implements GL10, GL10Ext, GL11, GL11Ext, GL11ExtensionPack {
        int offset
    );

    // C function void glDeleteFramebuffersOES ( GLint n, GLint *framebuffers )
    // C function void glDeleteFramebuffersOES ( GLint n, GLuint *framebuffers )

    public native void glDeleteFramebuffersOES(
        int n,
        java.nio.IntBuffer framebuffers
    );

    // C function void glDeleteRenderbuffersOES ( GLint n, GLint *renderbuffers )
    // C function void glDeleteRenderbuffersOES ( GLint n, GLuint *renderbuffers )

    public native void glDeleteRenderbuffersOES(
        int n,
@@ -1958,7 +1964,7 @@ public class GLImpl implements GL10, GL10Ext, GL11, GL11Ext, GL11ExtensionPack {
        int offset
    );

    // C function void glDeleteRenderbuffersOES ( GLint n, GLint *renderbuffers )
    // C function void glDeleteRenderbuffersOES ( GLint n, GLuint *renderbuffers )

    public native void glDeleteRenderbuffersOES(
        int n,
@@ -1990,7 +1996,7 @@ public class GLImpl implements GL10, GL10Ext, GL11, GL11Ext, GL11ExtensionPack {
        int target
    );

    // C function void glGenFramebuffersOES ( GLint n, GLint *framebuffers )
    // C function void glGenFramebuffersOES ( GLint n, GLuint *framebuffers )

    public native void glGenFramebuffersOES(
        int n,
@@ -1998,14 +2004,14 @@ public class GLImpl implements GL10, GL10Ext, GL11, GL11Ext, GL11ExtensionPack {
        int offset
    );

    // C function void glGenFramebuffersOES ( GLint n, GLint *framebuffers )
    // C function void glGenFramebuffersOES ( GLint n, GLuint *framebuffers )

    public native void glGenFramebuffersOES(
        int n,
        java.nio.IntBuffer framebuffers
    );

    // C function void glGenRenderbuffersOES ( GLint n, GLint *renderbuffers )
    // C function void glGenRenderbuffersOES ( GLint n, GLuint *renderbuffers )

    public native void glGenRenderbuffersOES(
        int n,
@@ -2013,7 +2019,7 @@ public class GLImpl implements GL10, GL10Ext, GL11, GL11Ext, GL11ExtensionPack {
        int offset
    );

    // C function void glGenRenderbuffersOES ( GLint n, GLint *renderbuffers )
    // C function void glGenRenderbuffersOES ( GLint n, GLuint *renderbuffers )

    public native void glGenRenderbuffersOES(
        int n,
+4 −4
Original line number Diff line number Diff line
@@ -7,14 +7,14 @@ void glBlendFuncSeparate ( GLint srcRGB, GLint dstRGB, GLint srcAlpha, GLint dst
GLint glCheckFramebufferStatusOES ( GLint target )
void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data )
void glCopyTexImage2D ( GLint target, GLint level, GLint internalformat, GLint x, GLint y, GLint width, GLint height, GLint border )
void glDeleteFramebuffersOES ( GLint n, GLint *framebuffers )
void glDeleteRenderbuffersOES ( GLint n, GLint *renderbuffers )
void glDeleteFramebuffersOES ( GLint n, GLuint *framebuffers )
void glDeleteRenderbuffersOES ( GLint n, GLuint *renderbuffers )
void glEnable ( GLint cap )
void glFramebufferRenderbufferOES ( GLint target, GLint attachment, GLint renderbuffertarget, GLint renderbuffer )
void glFramebufferTexture2DOES ( GLint target, GLint attachment, GLint textarget, GLint texture, GLint level )
void glGenerateMipmapOES ( GLint target )
void glGenFramebuffersOES ( GLint n, GLint *framebuffers )
void glGenRenderbuffersOES ( GLint n, GLint *renderbuffers )
void glGenFramebuffersOES ( GLint n, GLuint *framebuffers )
void glGenRenderbuffersOES ( GLint n, GLuint *renderbuffers )
void glGetFramebufferAttachmentParameterivOES ( GLint target, GLint attachment, GLint pname, GLint *params )
void glGetIntegerv ( GLint pname, GLint *params )
void glGetRenderbufferParameterivOES ( GLint target, GLint pname, GLint *params )
+24 −24
Original line number Diff line number Diff line
@@ -29,28 +29,28 @@ glDrawTexfvOES check coords 5
glDrawTexivOES check coords 5
glDrawTexsvOES check coords 5
glDrawTexxvOES check coords 5
glBindFramebufferOES unsupported
glBindRenderbufferOES unsupported
glBlendEquation unsupported
glBlendEquationSeparate unsupported
glBlendFuncSeparate unsupported
glCheckFramebufferStatusOES unsupported return 0
glDeleteFramebuffersOES unsupported
glDeleteRenderbuffersOES unsupported
glFramebufferRenderbufferOES unsupported
glFramebufferStorageOES unsupported
glFramebufferTexture2DOES unsupported
glGenFramebuffersOES unsupported
glGenRenderbuffersOES unsupported
glGenerateMipmapOES unsupported
glBindFramebufferOES requires OES_framebuffer_object
glBindRenderbufferOES requires OES_framebuffer_object
glBlendEquation requires OES_blend_subtract
glBlendEquationSeparate requires OES_blend_equation_separate
glBlendFuncSeparate requires OES_blend_equation_separate
glCheckFramebufferStatusOES requires OES_framebuffer_object return 0
glDeleteFramebuffersOES requires OES_framebuffer_object check framebuffers n
glDeleteRenderbuffersOES requires OES_framebuffer_object check renderbuffers n
glFramebufferRenderbufferOES requires OES_framebuffer_object
glFramebufferStorageOES requires OES_framebuffer_object
glFramebufferTexture2DOES requires OES_framebuffer_object
glGenFramebuffersOES requires OES_framebuffer_object check framebuffers n
glGenRenderbuffersOES requires OES_framebuffer_object check renderbuffers n
glGenerateMipmapOES requires OES_framebuffer_object
glGetFramebufferAttachmentParameterivOES requires OES_framebuffer_object
glGetRenderbufferParameterivOES requires OES_framebuffer_object
glIsFramebufferOES requires OES_framebuffer_object return JNI_FALSE
glIsRenderbufferOES requires OES_framebuffer_object return JNI_FALSE
glRenderbufferStorageOES requires OES_framebuffer_object
glGetTexGen requires OES_texture_cube_map
glTexGen requires OES_texture_cube_map
glTexGenf requires OES_texture_cube_map
glTexGeni requires OES_texture_cube_map
glTexGenx requires OES_texture_cube_map
glGetBufferParameter unsupported
glGetFramebufferAttachmentParameterivOES unsupported
glGetRenderbufferParameterivOES unsupported
glGetTexGen unsupported
glIsFramebufferOES unsupported return JNI_FALSE
glIsRenderbufferOES unsupported return JNI_FALSE
glRenderbufferStorageOES unsupported return false
glTexGen unsupported
glTexGenf unsupported
glTexGeni unsupported
glTexGenx unsupported
+54 −2
Original line number Diff line number Diff line
@@ -211,6 +211,8 @@ public class JniCodeEmitter {
                    index += 5;
                } else if (checks[index].equals("unsupported")) {
                    index += 1;
                } else if (checks[index].equals("requires")) {
                    index += 2;
                } else if (checks[index].equals("nullAllowed")) {
                    return true;
                } else {
@@ -243,6 +245,8 @@ public class JniCodeEmitter {
                    index += 5;
                } else if (checks[index].equals("unsupported")) {
                    index += 1;
                } else if (checks[index].equals("requires")) {
                    index += 2;
                } else if (checks[index].equals("nullAllowed")) {
                    index += 1;
                } else {
@@ -263,6 +267,8 @@ public class JniCodeEmitter {
            while (index < checks.length) {
                if (checks[index].equals("unsupported")) {
                    return true;
                } else if (checks[index].equals("requires")) {
                    index += 2;
                } else if (checks[index].equals("return")) {
                    index += 2;
                } else if (checks[index].startsWith("check")) {
@@ -281,6 +287,33 @@ public class JniCodeEmitter {
        return false;
    }
    
    String isRequiresFunc(CFunc cfunc) {
        String[] checks = mChecker.getChecks(cfunc.getName());
        int index = 1;
        if (checks != null) {
            while (index < checks.length) {
                if (checks[index].equals("unsupported")) {
                    index += 1;
                } else if (checks[index].equals("requires")) {
                    return checks[index+1];
                } else if (checks[index].equals("return")) {
                    index += 2;
                } else if (checks[index].startsWith("check")) {
                    index += 3;
                } else if (checks[index].equals("ifcheck")) {
                    index += 5;
                } else if (checks[index].equals("nullAllowed")) {
                    index += 1;
                } else {
                    System.out.println("Error: unknown keyword \"" +
                                       checks[index] + "\"");
                    System.exit(0);
                }
            }
        }
        return null;
    }
    
    void emitNativeBoundsChecks(CFunc cfunc, String cname, PrintStream out,
            boolean isBuffer, boolean emitExceptionCheck, String offset, String remaining, String iii) {

@@ -365,6 +398,9 @@ public class JniCodeEmitter {
                        } else if (checks[index].equals("unsupported")) {
                            // ignore
                            index += 1;
                        } else if (checks[index].equals("requires")) {
                            // ignore
                            index += 2;
                        } else if (checks[index].equals("nullAllowed")) {
                            // ignore
                            index += 1;
@@ -777,6 +813,22 @@ public class JniCodeEmitter {
            return;
        }
        
        String requiresExtension = isRequiresFunc(cfunc);
        if (requiresExtension != null) {
            out.println(indent +
                        "if (! supportsExtension(_env, _this, have_" + requiresExtension + "ID)) {");
            out.println(indent + indent +
                        "_env->ThrowNew(UOEClass,");
            out.println(indent + indent +
                        "    \"" + cfunc.getName() + "\");");
            if (isVoid) {
                out.println(indent + indent + "    return;");
            } else {
                String retval = getErrorReturnValue(cfunc);
                out.println(indent + indent + "    return " + retval + ";");
            }
            out.println(indent + "}");
        }
        if (mUseContextPointer) {
            out.println(indent +
                "android::gl::ogles_context_t *ctx = getContext(_env, _this);");
Loading