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

Commit 47916aa1 authored by Brian Salomon's avatar Brian Salomon
Browse files

Remove code to work with old SkMesh::Make[Indexed] API.

Test: compiles
Bug: b/20682907
Change-Id: Ia82e8c46b1837c98124a0a25682126adb257bb66
parent 1fb88649
Loading
Loading
Loading
Loading
+17 −23
Original line number Original line Diff line number Diff line
@@ -37,16 +37,6 @@ sk_sp<SkMesh::IndexBuffer> genIndexBuffer(JNIEnv* env, jobject buffer, int size,
    return indexBuffer;
    return indexBuffer;
}
}


// TODO(b/260252882): undefine SK_LEGACY_MESH_MAKE and remove this.
template <typename T>
SkMesh get_mesh_from_result(T&& result) {
#ifdef SK_LEGACY_MESH_MAKE
    return result;
#else
    return result.mesh;
#endif
}

static jlong make(JNIEnv* env, jobject, jlong meshSpec, jint mode, jobject vertexBuffer,
static jlong make(JNIEnv* env, jobject, jlong meshSpec, jint mode, jobject vertexBuffer,
                  jboolean isDirect, jint vertexCount, jint vertexOffset, jint left, jint top,
                  jboolean isDirect, jint vertexCount, jint vertexOffset, jint left, jint top,
                  jint right, jint bottom) {
                  jint right, jint bottom) {
@@ -54,8 +44,9 @@ static jlong make(JNIEnv* env, jobject, jlong meshSpec, jint mode, jobject verte
    sk_sp<SkMesh::VertexBuffer> skVertexBuffer =
    sk_sp<SkMesh::VertexBuffer> skVertexBuffer =
            genVertexBuffer(env, vertexBuffer, vertexCount * skMeshSpec->stride(), isDirect);
            genVertexBuffer(env, vertexBuffer, vertexCount * skMeshSpec->stride(), isDirect);
    auto skRect = SkRect::MakeLTRB(left, top, right, bottom);
    auto skRect = SkRect::MakeLTRB(left, top, right, bottom);
    auto mesh = get_mesh_from_result(SkMesh::Make(skMeshSpec, SkMesh::Mode(mode), skVertexBuffer,
    auto mesh = SkMesh::Make(skMeshSpec, SkMesh::Mode(mode), skVertexBuffer, vertexCount,
                                                  vertexCount, vertexOffset, nullptr, skRect));
                             vertexOffset, nullptr, skRect)
                        .mesh;
    auto meshPtr = std::make_unique<MeshWrapper>(MeshWrapper{mesh, MeshUniformBuilder(skMeshSpec)});
    auto meshPtr = std::make_unique<MeshWrapper>(MeshWrapper{mesh, MeshUniformBuilder(skMeshSpec)});
    return reinterpret_cast<jlong>(meshPtr.release());
    return reinterpret_cast<jlong>(meshPtr.release());
}
}
@@ -70,9 +61,10 @@ static jlong makeIndexed(JNIEnv* env, jobject, jlong meshSpec, jint mode, jobjec
    sk_sp<SkMesh::IndexBuffer> skIndexBuffer =
    sk_sp<SkMesh::IndexBuffer> skIndexBuffer =
            genIndexBuffer(env, indexBuffer, indexCount * gIndexByteSize, isIndexDirect);
            genIndexBuffer(env, indexBuffer, indexCount * gIndexByteSize, isIndexDirect);
    auto skRect = SkRect::MakeLTRB(left, top, right, bottom);
    auto skRect = SkRect::MakeLTRB(left, top, right, bottom);
    auto mesh = get_mesh_from_result(SkMesh::MakeIndexed(
    auto mesh = SkMesh::MakeIndexed(skMeshSpec, SkMesh::Mode(mode), skVertexBuffer, vertexCount,
            skMeshSpec, SkMesh::Mode(mode), skVertexBuffer, vertexCount, vertexOffset,
                                    vertexOffset, skIndexBuffer, indexCount, indexOffset, nullptr,
            skIndexBuffer, indexCount, indexOffset, nullptr, skRect));
                                    skRect)
                        .mesh;
    auto meshPtr = std::make_unique<MeshWrapper>(MeshWrapper{mesh, MeshUniformBuilder(skMeshSpec)});
    auto meshPtr = std::make_unique<MeshWrapper>(MeshWrapper{mesh, MeshUniformBuilder(skMeshSpec)});
    return reinterpret_cast<jlong>(meshPtr.release());
    return reinterpret_cast<jlong>(meshPtr.release());
}
}
@@ -81,15 +73,17 @@ static void updateMesh(JNIEnv* env, jobject, jlong meshWrapper, jboolean indexed
    auto wrapper = reinterpret_cast<MeshWrapper*>(meshWrapper);
    auto wrapper = reinterpret_cast<MeshWrapper*>(meshWrapper);
    auto mesh = wrapper->mesh;
    auto mesh = wrapper->mesh;
    if (indexed) {
    if (indexed) {
        wrapper->mesh = get_mesh_from_result(SkMesh::MakeIndexed(
        wrapper->mesh = SkMesh::MakeIndexed(sk_ref_sp(mesh.spec()), mesh.mode(),
                sk_ref_sp(mesh.spec()), mesh.mode(), sk_ref_sp(mesh.vertexBuffer()),
                                            sk_ref_sp(mesh.vertexBuffer()), mesh.vertexCount(),
                mesh.vertexCount(), mesh.vertexOffset(), sk_ref_sp(mesh.indexBuffer()),
                                            mesh.vertexOffset(), sk_ref_sp(mesh.indexBuffer()),
                mesh.indexCount(), mesh.indexOffset(), wrapper->builder.fUniforms, mesh.bounds()));
                                            mesh.indexCount(), mesh.indexOffset(),
                                            wrapper->builder.fUniforms, mesh.bounds())
                                .mesh;
    } else {
    } else {
        wrapper->mesh = get_mesh_from_result(
        wrapper->mesh = SkMesh::Make(sk_ref_sp(mesh.spec()), mesh.mode(),
                SkMesh::Make(sk_ref_sp(mesh.spec()), mesh.mode(), sk_ref_sp(mesh.vertexBuffer()),
                                     sk_ref_sp(mesh.vertexBuffer()), mesh.vertexCount(),
                             mesh.vertexCount(), mesh.vertexOffset(), wrapper->builder.fUniforms,
                                     mesh.vertexOffset(), wrapper->builder.fUniforms, mesh.bounds())
                             mesh.bounds()));
                                .mesh;
    }
    }
}
}