Loading libs/hwui/jni/Mesh.cpp +17 −23 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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()); } Loading @@ -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()); } Loading @@ -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; } } Loading Loading
libs/hwui/jni/Mesh.cpp +17 −23 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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()); } Loading @@ -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()); } Loading @@ -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; } } Loading