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

Test: compiles
Bug: b/20682907
Change-Id: Ia82e8c46b1837c98124a0a25682126adb257bb66
This commit is contained in:
Brian Salomon
2022-12-09 14:34:30 -05:00
parent 1fb8864923
commit 47916aa187

View File

@@ -37,16 +37,6 @@ sk_sp<SkMesh::IndexBuffer> genIndexBuffer(JNIEnv* env, jobject buffer, int size,
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,
jboolean isDirect, jint vertexCount, jint vertexOffset, jint left, jint top,
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 =
genVertexBuffer(env, vertexBuffer, vertexCount * skMeshSpec->stride(), isDirect);
auto skRect = SkRect::MakeLTRB(left, top, right, bottom);
auto mesh = get_mesh_from_result(SkMesh::Make(skMeshSpec, SkMesh::Mode(mode), skVertexBuffer,
vertexCount, vertexOffset, nullptr, skRect));
auto mesh = SkMesh::Make(skMeshSpec, SkMesh::Mode(mode), skVertexBuffer, vertexCount,
vertexOffset, nullptr, skRect)
.mesh;
auto meshPtr = std::make_unique<MeshWrapper>(MeshWrapper{mesh, MeshUniformBuilder(skMeshSpec)});
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 =
genIndexBuffer(env, indexBuffer, indexCount * gIndexByteSize, isIndexDirect);
auto skRect = SkRect::MakeLTRB(left, top, right, bottom);
auto mesh = get_mesh_from_result(SkMesh::MakeIndexed(
skMeshSpec, SkMesh::Mode(mode), skVertexBuffer, vertexCount, vertexOffset,
skIndexBuffer, indexCount, indexOffset, nullptr, skRect));
auto mesh = SkMesh::MakeIndexed(skMeshSpec, SkMesh::Mode(mode), skVertexBuffer, vertexCount,
vertexOffset, skIndexBuffer, indexCount, indexOffset, nullptr,
skRect)
.mesh;
auto meshPtr = std::make_unique<MeshWrapper>(MeshWrapper{mesh, MeshUniformBuilder(skMeshSpec)});
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 mesh = wrapper->mesh;
if (indexed) {
wrapper->mesh = get_mesh_from_result(SkMesh::MakeIndexed(
sk_ref_sp(mesh.spec()), mesh.mode(), sk_ref_sp(mesh.vertexBuffer()),
mesh.vertexCount(), mesh.vertexOffset(), sk_ref_sp(mesh.indexBuffer()),
mesh.indexCount(), mesh.indexOffset(), wrapper->builder.fUniforms, mesh.bounds()));
wrapper->mesh = SkMesh::MakeIndexed(sk_ref_sp(mesh.spec()), mesh.mode(),
sk_ref_sp(mesh.vertexBuffer()), mesh.vertexCount(),
mesh.vertexOffset(), sk_ref_sp(mesh.indexBuffer()),
mesh.indexCount(), mesh.indexOffset(),
wrapper->builder.fUniforms, mesh.bounds())
.mesh;
} else {
wrapper->mesh = get_mesh_from_result(
SkMesh::Make(sk_ref_sp(mesh.spec()), mesh.mode(), sk_ref_sp(mesh.vertexBuffer()),
mesh.vertexCount(), mesh.vertexOffset(), wrapper->builder.fUniforms,
mesh.bounds()));
wrapper->mesh = SkMesh::Make(sk_ref_sp(mesh.spec()), mesh.mode(),
sk_ref_sp(mesh.vertexBuffer()), mesh.vertexCount(),
mesh.vertexOffset(), wrapper->builder.fUniforms, mesh.bounds())
.mesh;
}
}