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

Commit 36a0fa91 authored by Jack Palevich's avatar Jack Palevich Committed by Android Git Automerger
Browse files

am 981ccfbb: Implement Matrix Palette extension.

Merge commit '981ccfbbfd737e2bdf0cedec0089975f91fd4e0a' into eclair-mr2-plus-aosp

* commit '981ccfbbfd737e2bdf0cedec0089975f91fd4e0a':
  Implement Matrix Palette extension.
parents ab30fae6 3cd7add3
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -47,6 +47,12 @@ GL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type,
        GLsizei stride, const GLvoid *pointer, GLsizei count);
GL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type,
        GLsizei stride, const GLvoid *pointer, GLsizei count);
GL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type,
        GLsizei stride, const GLvoid *pointer, GLsizei count);
GL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type,
        GLsizei stride, const GLvoid *pointer, GLsizei count);
GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type,
        GLsizei stride, const GLvoid *pointer, GLsizei count);
}

void glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
@@ -66,6 +72,21 @@ void glVertexPointerBounds(GLint size, GLenum type,
    glVertexPointer(size, type, stride, pointer);
}

void GL_APIENTRY glPointSizePointerOESBounds(GLenum type,
        GLsizei stride, const GLvoid *pointer, GLsizei count) {
    glPointSizePointerOES(type, stride, pointer);
}

GL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type,
        GLsizei stride, const GLvoid *pointer, GLsizei count) {
    glMatrixIndexPointerOES(size, type, stride, pointer);
}

GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type,
        GLsizei stride, const GLvoid *pointer, GLsizei count) {
    glWeightPointerOES(size, type, stride, pointer);
}

// ----------------------------------------------------------------------------
// Actual GL entry-points
// ----------------------------------------------------------------------------
+0 −4
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ glBlendEquation unsupported
glBlendEquationSeparate unsupported
glBlendFuncSeparate unsupported
glCheckFramebufferStatusOES unsupported return 0
glCurrentPaletteMatrixOES unsupported
glDeleteFramebuffersOES unsupported
glDeleteRenderbuffersOES unsupported
glFramebufferRenderbufferOES unsupported
@@ -52,11 +51,8 @@ glGetRenderbufferParameterivOES unsupported
glGetTexGen unsupported
glIsFramebufferOES unsupported return JNI_FALSE
glIsRenderbufferOES unsupported return JNI_FALSE
glLoadPaletteFromModelViewMatrixOES unsupported
glMatrixIndexPointerOES unsupported
glRenderbufferStorageOES unsupported return false
glTexGen unsupported
glTexGenf unsupported
glTexGeni unsupported
glTexGenx unsupported
glWeightPointerOES unsupported
+0 −4
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ glBlendEquation unsupported
glBlendEquationSeparate unsupported
glBlendFuncSeparate unsupported
glCheckFramebufferStatusOES unsupported return 0
glCurrentPaletteMatrixOES unsupported
glDeleteFramebuffersOES unsupported
glDeleteRenderbuffersOES unsupported
glFramebufferRenderbufferOES unsupported
@@ -50,11 +49,8 @@ glGetRenderbufferParameterivOES unsupported
glGetTexGen unsupported
glIsFramebufferOES unsupported return JNI_FALSE
glIsRenderbufferOES unsupported return JNI_FALSE
glLoadPaletteFromModelViewMatrixOES unsupported
glMatrixIndexPointerOES unsupported
glRenderbufferStorageOES unsupported return false
glTexGen unsupported
glTexGenf unsupported
glTexGeni unsupported
glTexGenx unsupported
glWeightPointerOES unsupported
+38 −7
Original line number Diff line number Diff line
@@ -119,10 +119,15 @@ public class JniCodeEmitter {
        emitFunction(jfunc, out, false, false);
    }

    boolean isPointerFunc(JFunc jfunc) {
        String name = jfunc.getName();
        return (name.endsWith("Pointer") || name.endsWith("PointerOES"))
            && jfunc.getCFunc().hasPointerArg();
    }

    void emitFunctionCall(JFunc jfunc, PrintStream out, String iii, boolean grabArray) {
        boolean isVoid = jfunc.getType().isVoid();
        boolean isPointerFunc = jfunc.getName().endsWith("Pointer") &&
            jfunc.getCFunc().hasPointerArg();
        boolean isPointerFunc = isPointerFunc(jfunc);

        if (!isVoid) {
            out.println(iii +
@@ -406,9 +411,7 @@ public class JniCodeEmitter {
     *   if !interfaceDecl: public <returntype> func(args) { body }
     */
    void emitFunction(JFunc jfunc, PrintStream out, boolean nativeDecl, boolean interfaceDecl) {
        boolean isPointerFunc =
            jfunc.getName().endsWith("Pointer") &&
            jfunc.getCFunc().hasPointerArg();
        boolean isPointerFunc = isPointerFunc(jfunc);

        if (!nativeDecl && !interfaceDecl && !isPointerFunc) {
            // If it's not a pointer function, we've already emitted it
@@ -510,6 +513,34 @@ public class JniCodeEmitter {
                    out.println(iii + "    (stride >= 0)) {");
                    out.println(iii + indent + "_vertexPointer = pointer;");
                    out.println(iii + "}");
                } else if (fname.equals("glPointSizePointerOES")) {
                    out.println(iii + "if (((type == GL_FLOAT) ||");
                    out.println(iii + "     (type == GL_FIXED)) &&");
                    out.println(iii + "    (stride >= 0)) {");
                    out.println(iii + indent + "_pointSizePointerOES = pointer;");
                    out.println(iii + "}");
                } else if (fname.equals("glMatrixIndexPointerOES")) {
                    out.println(iii + "if (((size == 2) ||");
                    out.println(iii + "     (size == 3) ||");
                    out.println(iii + "     (size == 4)) &&");
                    out.println(iii + "    ((type == GL_FLOAT) ||");
                    out.println(iii + "     (type == GL_BYTE) ||");
                    out.println(iii + "     (type == GL_SHORT) ||");
                    out.println(iii + "     (type == GL_FIXED)) &&");
                    out.println(iii + "    (stride >= 0)) {");
                    out.println(iii + indent + "_matrixIndexPointerOES = pointer;");
                    out.println(iii + "}");
                } else if (fname.equals("glWeightPointer")) {
                    out.println(iii + "if (((size == 2) ||");
                    out.println(iii + "     (size == 3) ||");
                    out.println(iii + "     (size == 4)) &&");
                    out.println(iii + "    ((type == GL_FLOAT) ||");
                    out.println(iii + "     (type == GL_BYTE) ||");
                    out.println(iii + "     (type == GL_SHORT) ||");
                    out.println(iii + "     (type == GL_FIXED)) &&");
                    out.println(iii + "    (stride >= 0)) {");
                    out.println(iii + indent + "_weightPointerOES = pointer;");
                    out.println(iii + "}");
                }
            }

@@ -609,9 +640,9 @@ public class JniCodeEmitter {
        //

        String outName = "android_" + jfunc.getName();
        boolean isPointerFunc = outName.endsWith("Pointer") &&
            jfunc.getCFunc().hasPointerArg();
        boolean isPointerFunc = isPointerFunc(jfunc);
        boolean isVBOPointerFunc = (outName.endsWith("Pointer") ||
                outName.endsWith("PointerOES") ||
            outName.endsWith("DrawElements")) &&
            !jfunc.getCFunc().hasPointerArg();
        if (isPointerFunc) {
+9 −1
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@

package android.opengl;

import java.nio.Buffer;

public class GLES11Ext {
    public static final int GL_BLEND_EQUATION_RGB_OES                               = 0x8009;
    public static final int GL_BLEND_EQUATION_ALPHA_OES                             = 0x883D;
@@ -128,3 +130,9 @@ public class GLES11Ext {
	    _nativeClassInit();
    }
    
    private static final int GL_BYTE = GLES10.GL_BYTE;
    private static final int GL_FIXED = GLES10.GL_FIXED;
    private static final int GL_FLOAT = GLES10.GL_FLOAT;
    private static final int GL_SHORT = GLES10.GL_SHORT;
    
    private static Buffer _matrixIndexPointerOES;
 No newline at end of file
Loading