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

Commit e1dcab3f authored by Romain Guy's avatar Romain Guy Committed by Android Git Automerger
Browse files

am 244a0bca: Merge "Make gradients beautiful again Bug #7239634" into jb-mr1-dev

* commit '244a0bca':
  Make gradients beautiful again Bug #7239634
parents 0b6cb84b 244a0bca
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ Program::Program(const ProgramDescription& description, const char* vertex, cons

    if (mInitialized) {
        transform = addUniform("transform");
        projection = addUniform("projection");
    }
}

@@ -152,18 +153,20 @@ GLuint Program::buildShader(const char* source, GLenum type) {

void Program::set(const mat4& projectionMatrix, const mat4& modelViewMatrix,
        const mat4& transformMatrix, bool offset) {
    mat4 t(projectionMatrix);
    mat4 p(projectionMatrix);
    if (offset) {
        // offset screenspace xy by an amount that compensates for typical precision
        // issues in GPU hardware that tends to paint hor/vert lines in pixels shifted
        // up and to the left.
        // This offset value is based on an assumption that some hardware may use as
        // little as 12.4 precision, so we offset by slightly more than 1/16.
        t.translate(.375, .375, 0);
        p.translate(.375, .375, 0);
    }
    t.multiply(transformMatrix);

    mat4 t(transformMatrix);
    t.multiply(modelViewMatrix);

    glUniformMatrix4fv(projection, 1, GL_FALSE, &p.data[0]);
    glUniformMatrix4fv(transform, 1, GL_FALSE, &t.data[0]);
}

+5 −0
Original line number Diff line number Diff line
@@ -374,6 +374,11 @@ public:
     */
    int transform;

    /**
     * Name of the projection uniform.
     */
    int projection;

protected:
    /**
     * Adds an attribute with the specified name.
+8 −7
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ const char* gVS_Header_Attributes_AAVertexShapeParameters =
const char* gVS_Header_Uniforms_TextureTransform =
        "uniform mat4 mainTextureTransform;\n";
const char* gVS_Header_Uniforms =
        "uniform mat4 projection;\n" \
        "uniform mat4 transform;\n";
const char* gVS_Header_Uniforms_IsPoint =
        "uniform mediump float pointSize;\n";
@@ -104,28 +105,28 @@ const char* gVS_Main_OutTransformedTexCoords =
const char* gVS_Main_OutGradient[6] = {
        // Linear
        "    linear = vec2((screenSpace * position).x, 0.5);\n"
        "    ditherTexCoords = (gl_Position * ditherSize).xy;\n",
        "    ditherTexCoords = (transform * position).xy * ditherSize;\n",
        "    linear = (screenSpace * position).x;\n"
        "    ditherTexCoords = (gl_Position * ditherSize).xy;\n",
        "    ditherTexCoords = (transform * position).xy * ditherSize;\n",

        // Circular
        "    circular = (screenSpace * position).xy;\n"
        "    ditherTexCoords = (gl_Position * ditherSize).xy;\n",
        "    ditherTexCoords = (transform * position).xy * ditherSize;\n",
        "    circular = (screenSpace * position).xy;\n"
        "    ditherTexCoords = (gl_Position * ditherSize).xy;\n",
        "    ditherTexCoords = (transform * position).xy * ditherSize;\n",

        // Sweep
        "    sweep = (screenSpace * position).xy;\n"
        "    ditherTexCoords = (gl_Position * ditherSize).xy;\n",
        "    ditherTexCoords = (transform * position).xy * ditherSize;\n",
        "    sweep = (screenSpace * position).xy;\n"
        "    ditherTexCoords = (gl_Position * ditherSize).xy;\n",
        "    ditherTexCoords = (transform * position).xy * ditherSize;\n",
};
const char* gVS_Main_OutBitmapTexCoords =
        "    outBitmapTexCoords = (textureTransform * position).xy * textureDimension;\n";
const char* gVS_Main_OutPointBitmapTexCoords =
        "    outPointBitmapTexCoords = (textureTransform * position).xy * textureDimension;\n";
const char* gVS_Main_Position =
        "    gl_Position = transform * position;\n";
        "    gl_Position = projection * transform * position;\n";
const char* gVS_Main_PointSize =
        "    gl_PointSize = pointSize;\n";
const char* gVS_Main_AALine =