diff --git a/app/src/main/cpp/main.cpp b/app/src/main/cpp/main.cpp index c7e260c..32b19cb 100644 --- a/app/src/main/cpp/main.cpp +++ b/app/src/main/cpp/main.cpp @@ -12,7 +12,7 @@ using namespace std; extern "C" { android_app* g_android_app = nullptr; -Application* g_Application = nullptr; +FaceApp* g_Application = nullptr; AAssetManager* g_assetManager = nullptr; void handle_cmd(android_app *pApp, int32_t cmd) { @@ -143,4 +143,20 @@ Java_com_hmwl_face_1sdk_FaceActivity_SetCppInitArg(JNIEnv *env, jobject thiz, js return; } memcpy(g_InitArgString, nativeString, len); +} +extern "C" +JNIEXPORT void JNICALL +Java_com_hmwl_face_1sdk_FaceActivity_ChangeStateCpp(JNIEnv *env, jobject thiz, jstring json) { + // TODO: implement ChangeStateCpp() + const char *nativeString = env->GetStringUTFChars(json, nullptr); + jsize len = env->GetStringUTFLength(json); + if(len > ArgLen) + { + aout << "ArgLen to long:" << len << std::endl; + return; + } + if(g_Application->isInited()) + { + g_Application->changeMotion(nativeString); + } } \ No newline at end of file diff --git a/app/src/main/java/com/hmwl/face_sdk/FaceActivity.java b/app/src/main/java/com/hmwl/face_sdk/FaceActivity.java index 0c94710..02601b7 100644 --- a/app/src/main/java/com/hmwl/face_sdk/FaceActivity.java +++ b/app/src/main/java/com/hmwl/face_sdk/FaceActivity.java @@ -171,31 +171,6 @@ public class FaceActivity extends GameActivity implements FaceLandmarkerHelper.L } - - @Override - public boolean onTouchEvent(MotionEvent event) { - int action = event.getActionMasked(); - float x = event.getX(); - float y = event.getY(); - - switch (action) { - case MotionEvent.ACTION_DOWN: - Log.d(TAG, "Java Layer: Touch DOWN at (" + x + ", " + y + ")"); - // ✅ 你可以在这里做些事,比如发消息给 C++,或 UI 反馈 - break; - case MotionEvent.ACTION_MOVE: - Log.d(TAG, "Java Layer: Touch MOVE"); - break; - case MotionEvent.ACTION_UP: - Log.d(TAG, "Java Layer: Touch UP"); - break; - } - - // ⚠️ 关键:返回 false 才能让事件继续传递给 Native 层(C++) - // 如果返回 true,表示事件已被消费,C++ 层将收不到! - return false; - } - @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); @@ -290,7 +265,10 @@ public class FaceActivity extends GameActivity implements FaceLandmarkerHelper.L { SetCppInitArg(json); } + + protected native void ChangeStateCpp(String json); protected void ChangeState(String json){ Log.i("FaceActivity", "ChangeState:" + json); + ChangeStateCpp(json); } } \ No newline at end of file diff --git a/app/src/main/java/com/hmwl/face_sdk/Motion.java b/app/src/main/java/com/hmwl/face_sdk/Motion.java index 5c65c86..c2b9f3a 100644 --- a/app/src/main/java/com/hmwl/face_sdk/Motion.java +++ b/app/src/main/java/com/hmwl/face_sdk/Motion.java @@ -2,11 +2,11 @@ package com.hmwl.face_sdk; import org.json.JSONObject; public class Motion { - public String type; - public String technique; - public String step; - public String show_type; - public String png_name; + public String type = "no"; + public String technique = "no"; + public String step = "no"; + public String show_type = "no"; + public String png_name = "no"; public int png_num; public JSONObject toJsonObject() { diff --git a/example/build.gradle b/example/build.gradle index fba46c6..f84d4e7 100644 --- a/example/build.gradle +++ b/example/build.gradle @@ -7,7 +7,7 @@ android { compileSdk 36 defaultConfig { - applicationId "com.hmwl.f20251028" + applicationId "com.hmwl.f20251030" minSdk 30 targetSdk 36 versionCode 1 diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/area/pic0.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/area/pic0.png deleted file mode 100644 index add9422..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/area/pic0.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/area/pic0_thick.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/area/pic0_thick.png deleted file mode 100644 index 1a55a07..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/area/pic0_thick.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/demo0.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/demo0.png deleted file mode 100644 index c9e5244..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/demo0.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/demo0_thick.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/demo0_thick.png deleted file mode 100644 index 4cbe056..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/demo0_thick.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic0.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic0.png deleted file mode 100644 index 5e96f81..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic0.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic0_thick.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic0_thick.png deleted file mode 100644 index 3a076eb..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic0_thick.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic1.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic1.png deleted file mode 100644 index 3af6c63..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic1.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic1_thick.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic1_thick.png deleted file mode 100644 index 66d4024..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic1_thick.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic2.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic2.png deleted file mode 100644 index 85b1564..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic2.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic2_thick.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic2_thick.png deleted file mode 100644 index fea7c4f..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/pic2_thick.png and /dev/null differ diff --git a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/test0.png b/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/test0.png deleted file mode 100644 index acbb2d2..0000000 Binary files a/example/src/main/assets/bottom_makeup/base_makeup/press2/direction/test0.png and /dev/null differ diff --git a/example/src/main/assets/pic/11.png b/example/src/main/assets/pic/11.png new file mode 100644 index 0000000..71b5ab8 Binary files /dev/null and b/example/src/main/assets/pic/11.png differ diff --git a/example/src/main/assets/pic/12.png b/example/src/main/assets/pic/12.png new file mode 100644 index 0000000..a90446f Binary files /dev/null and b/example/src/main/assets/pic/12.png differ diff --git a/example/src/main/assets/pic/13.png b/example/src/main/assets/pic/13.png new file mode 100644 index 0000000..58bc74e Binary files /dev/null and b/example/src/main/assets/pic/13.png differ diff --git a/example/src/main/assets/pic/14.png b/example/src/main/assets/pic/14.png new file mode 100644 index 0000000..0baac42 Binary files /dev/null and b/example/src/main/assets/pic/14.png differ diff --git a/example/src/main/assets/pic/21.png b/example/src/main/assets/pic/21.png new file mode 100644 index 0000000..4cbfef8 Binary files /dev/null and b/example/src/main/assets/pic/21.png differ diff --git a/example/src/main/assets/pic/23.png b/example/src/main/assets/pic/23.png new file mode 100644 index 0000000..11eaef1 Binary files /dev/null and b/example/src/main/assets/pic/23.png differ diff --git a/example/src/main/assets/pic/24.png b/example/src/main/assets/pic/24.png new file mode 100644 index 0000000..0889c4b Binary files /dev/null and b/example/src/main/assets/pic/24.png differ diff --git a/example/src/main/assets/pic/25.png b/example/src/main/assets/pic/25.png new file mode 100644 index 0000000..edcffe1 Binary files /dev/null and b/example/src/main/assets/pic/25.png differ diff --git a/example/src/main/assets/pic/26.png b/example/src/main/assets/pic/26.png new file mode 100644 index 0000000..3e10d53 Binary files /dev/null and b/example/src/main/assets/pic/26.png differ diff --git a/example/src/main/assets/pic/27.png b/example/src/main/assets/pic/27.png new file mode 100644 index 0000000..594bedb Binary files /dev/null and b/example/src/main/assets/pic/27.png differ diff --git a/example/src/main/assets/pic/32.png b/example/src/main/assets/pic/32.png new file mode 100644 index 0000000..2dac48a Binary files /dev/null and b/example/src/main/assets/pic/32.png differ diff --git a/example/src/main/assets/pic/37.png b/example/src/main/assets/pic/37.png new file mode 100644 index 0000000..b38a617 Binary files /dev/null and b/example/src/main/assets/pic/37.png differ diff --git a/example/src/main/assets/pic/4.png b/example/src/main/assets/pic/4.png new file mode 100644 index 0000000..9fd6829 Binary files /dev/null and b/example/src/main/assets/pic/4.png differ diff --git a/example/src/main/assets/pic/40.png b/example/src/main/assets/pic/40.png new file mode 100644 index 0000000..c6be20d Binary files /dev/null and b/example/src/main/assets/pic/40.png differ diff --git a/example/src/main/assets/pic/41.png b/example/src/main/assets/pic/41.png new file mode 100644 index 0000000..3c09e75 Binary files /dev/null and b/example/src/main/assets/pic/41.png differ diff --git a/example/src/main/assets/pic/45.png b/example/src/main/assets/pic/45.png new file mode 100644 index 0000000..e45889b Binary files /dev/null and b/example/src/main/assets/pic/45.png differ diff --git a/example/src/main/assets/pic/48.png b/example/src/main/assets/pic/48.png new file mode 100644 index 0000000..cdaba51 Binary files /dev/null and b/example/src/main/assets/pic/48.png differ diff --git a/example/src/main/assets/pic/49.png b/example/src/main/assets/pic/49.png new file mode 100644 index 0000000..6e6ab9c Binary files /dev/null and b/example/src/main/assets/pic/49.png differ diff --git a/example/src/main/assets/pic/5.png b/example/src/main/assets/pic/5.png new file mode 100644 index 0000000..5eba85c Binary files /dev/null and b/example/src/main/assets/pic/5.png differ diff --git a/example/src/main/assets/pic/53.png b/example/src/main/assets/pic/53.png new file mode 100644 index 0000000..2c7c96c Binary files /dev/null and b/example/src/main/assets/pic/53.png differ diff --git a/example/src/main/assets/pic/56.png b/example/src/main/assets/pic/56.png new file mode 100644 index 0000000..dcb6a89 Binary files /dev/null and b/example/src/main/assets/pic/56.png differ diff --git a/example/src/main/assets/pic/59.png b/example/src/main/assets/pic/59.png new file mode 100644 index 0000000..a9fb5d2 Binary files /dev/null and b/example/src/main/assets/pic/59.png differ diff --git a/example/src/main/assets/pic/6.png b/example/src/main/assets/pic/6.png new file mode 100644 index 0000000..2d5a9b8 Binary files /dev/null and b/example/src/main/assets/pic/6.png differ diff --git a/example/src/main/assets/pic/62.png b/example/src/main/assets/pic/62.png new file mode 100644 index 0000000..8aa6d17 Binary files /dev/null and b/example/src/main/assets/pic/62.png differ diff --git a/example/src/main/assets/pic/65.png b/example/src/main/assets/pic/65.png new file mode 100644 index 0000000..3731287 Binary files /dev/null and b/example/src/main/assets/pic/65.png differ diff --git a/example/src/main/assets/pic/68.png b/example/src/main/assets/pic/68.png new file mode 100644 index 0000000..12a45e4 Binary files /dev/null and b/example/src/main/assets/pic/68.png differ diff --git a/example/src/main/assets/pic/7.png b/example/src/main/assets/pic/7.png new file mode 100644 index 0000000..1c1ff2f Binary files /dev/null and b/example/src/main/assets/pic/7.png differ diff --git a/example/src/main/assets/pic/71.png b/example/src/main/assets/pic/71.png new file mode 100644 index 0000000..1daaa61 Binary files /dev/null and b/example/src/main/assets/pic/71.png differ diff --git a/example/src/main/assets/pic/76.png b/example/src/main/assets/pic/76.png new file mode 100644 index 0000000..77789ce Binary files /dev/null and b/example/src/main/assets/pic/76.png differ diff --git a/example/src/main/assets/pic/77.png b/example/src/main/assets/pic/77.png new file mode 100644 index 0000000..a0efb24 Binary files /dev/null and b/example/src/main/assets/pic/77.png differ diff --git a/example/src/main/assets/pic/78.png b/example/src/main/assets/pic/78.png new file mode 100644 index 0000000..c23fb03 Binary files /dev/null and b/example/src/main/assets/pic/78.png differ diff --git a/example/src/main/assets/pic/81.png b/example/src/main/assets/pic/81.png new file mode 100644 index 0000000..d027b01 Binary files /dev/null and b/example/src/main/assets/pic/81.png differ diff --git a/example/src/main/assets/pic/png_filenames.json b/example/src/main/assets/pic/png_filenames.json new file mode 100644 index 0000000..d855b81 --- /dev/null +++ b/example/src/main/assets/pic/png_filenames.json @@ -0,0 +1,34 @@ +[ + "11.png", + "12.png", + "13.png", + "14.png", + "21.png", + "23.png", + "24.png", + "25.png", + "26.png", + "27.png", + "32.png", + "37.png", + "4.png", + "40.png", + "41.png", + "45.png", + "48.png", + "49.png", + "5.png", + "53.png", + "56.png", + "59.png", + "6.png", + "62.png", + "65.png", + "68.png", + "7.png", + "71.png", + "76.png", + "77.png", + "78.png", + "81.png" +] \ No newline at end of file diff --git a/example/src/main/java/com/hmwl/example/MainActivity.java b/example/src/main/java/com/hmwl/example/MainActivity.java index 826d64e..c61c2e8 100644 --- a/example/src/main/java/com/hmwl/example/MainActivity.java +++ b/example/src/main/java/com/hmwl/example/MainActivity.java @@ -1,13 +1,30 @@ package com.hmwl.example; +import android.content.Context; import android.os.Bundle; +import android.util.Log; +import android.view.MotionEvent; +import android.widget.Toast; import com.hmwl.face_sdk.InitArg; import com.hmwl.face_sdk.Motion; import com.hmwl.face_sdk.FaceActivity; -public class MainActivity extends FaceActivity{ + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; + +public class MainActivity extends FaceActivity +{ @Override protected void onCreate(Bundle savedInstanceState) @@ -17,7 +34,7 @@ public class MainActivity extends FaceActivity{ motion.technique = "基础上妆"; motion.step = "2按压"; motion.show_type = "方向示意图"; - motion.png_name = "test"; + motion.png_name = "4.png"; motion.png_num = 1; InitArg initArg = new InitArg(); @@ -25,7 +42,82 @@ public class MainActivity extends FaceActivity{ initArg.zoom = 1.5f; initArg.motion = motion; SetInitArg(initArg.toJson()); - super.onCreate(savedInstanceState); + + super.onCreate(savedInstanceState); + FaceInit(this); + Toast.makeText(this, "4.png", Toast.LENGTH_LONG).show(); + } + + String GetCurMotionState(int index) + { + Motion motion = new Motion(); + motion.png_name = pngFilenames.get(index); + motion.png_num = 1; + return motion.toJson(); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + // 获取触控动作 + int action = event.getAction(); + + switch (action) { + case MotionEvent.ACTION_DOWN: + // 手指按下 + Log.d("TouchEvent", "手指按下 - X: " + event.getX() + ", Y: " + event.getY()); + break; + + case MotionEvent.ACTION_MOVE: + // 手指移动 + Log.d("TouchEvent", "手指移动 - X: " + event.getX() + ", Y: " + event.getY()); + break; + + case MotionEvent.ACTION_UP: + // 手指抬起 + Log.d("TouchEvent", "手指抬起"); + curIndex++; + if(curIndex > pngFilenames.size()-1) + { + curIndex = 0; + } + ChangeState(GetCurMotionState(curIndex)); + Toast.makeText(this, pngFilenames.get(curIndex), Toast.LENGTH_LONG).show(); + break; + } + + return true; // 表示已处理该事件 + } + + List pngFilenames = null; + int curIndex = 0; + private void FaceInit(Context context){ + pngFilenames = readPngFilenamesFromAssets(context, "pic/png_filenames.json"); + } + + private List readPngFilenamesFromAssets(Context context, String filename) { + List pngFilenames = new ArrayList<>(); + + try { + InputStream is = context.getAssets().open(filename); + BufferedReader reader = new BufferedReader(new InputStreamReader(is)); + StringBuilder stringBuilder = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + stringBuilder.append(line); + } + + JSONArray jsonArray = new JSONArray(stringBuilder.toString()); + for (int i = 0; i < jsonArray.length(); i++) { + pngFilenames.add(jsonArray.getString(i)); + } + + reader.close(); + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + return pngFilenames; } } diff --git a/example/src/main/res/values/strings.xml b/example/src/main/res/values/strings.xml index 37e4589..eff1c07 100644 --- a/example/src/main/res/values/strings.xml +++ b/example/src/main/res/values/strings.xml @@ -1,3 +1,3 @@ - f20251028 + f20251030 \ No newline at end of file diff --git a/python/get_png.py b/python/get_png.py new file mode 100644 index 0000000..1615d75 --- /dev/null +++ b/python/get_png.py @@ -0,0 +1,51 @@ +import os +import json + +def simple_collect_png_filenames(folder_path, output_file="../example/src/main/assets/pic/png_filenames.json"): + """ + 简化版的PNG文件名收集器(不遍历子文件夹) + """ + # 检查文件夹是否存在 + if not os.path.exists(folder_path): + print(f"错误:文件夹 '{folder_path}' 不存在") + return [] + + # 获取文件夹中的所有文件 + try: + all_files = os.listdir(folder_path) + except PermissionError: + print(f"错误:没有权限访问文件夹 '{folder_path}'") + return [] + + # 筛选PNG文件 + png_filenames = [] + for file in all_files: + file_path = os.path.join(folder_path, file) + if os.path.isfile(file_path) and file.lower().endswith('.png'): + png_filenames.append(file) + + # 按文件名排序 + png_filenames.sort() + + # 保存到JSON文件 + try: + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(png_filenames, f, ensure_ascii=False, indent=2) + print(f"找到 {len(png_filenames)} 个PNG文件,文件名已保存到 {output_file}") + except Exception as e: + print(f"保存文件时出错: {e}") + + # 显示找到的文件 + if png_filenames: + print("\n找到的PNG文件:") + for filename in png_filenames: + print(f" - {filename}") + + return png_filenames + +# 使用方法 +if __name__ == "__main__": + # 指定要遍历的文件夹 + folder_to_scan = '../example/src/main/assets/pic' + + simple_collect_png_filenames(folder_to_scan) \ No newline at end of file diff --git a/vulkan/FaceApp.cpp b/vulkan/FaceApp.cpp index 8b03f8a..52e97ca 100644 --- a/vulkan/FaceApp.cpp +++ b/vulkan/FaceApp.cpp @@ -732,7 +732,7 @@ void FaceApp::initVulkan() loadTexture("demo0_ex.png", m_texs_ex[i], true); } - loadTexture("out.png", tex_bg, false); + loadTexture("out.png", tex_bg, true); createVertexBuffer(); createUniformBuffer(); setup_descriptor_pool(); @@ -1137,19 +1137,27 @@ void FaceApp::SetInitArg(const char* arg) } + +void FaceApp::changeMotion(const char* json) +{ + Motion motion = json::parse(json); + changeMotion(motion); +} + void FaceApp::changeMotion(Motion& motion) { if (_curMotion.getMotionId() == motion.getMotionId()) { return; } - _curMotion = _initArg.motion; + _curMotion = motion; for (int i = 0; i < _curMotion.png_num; ++i) { #ifdef _WIN32 - string path = _curMotion.type + "/" + _curMotion.technique + "/" + _curMotion.step + "/" + _curMotion.show_type; - string path_name = path + "/" + _curMotion.png_name + std::to_string(i) + ".png"; + //string path = _curMotion.type + "/" + _curMotion.technique + "/" + _curMotion.step + "/" + _curMotion.show_type; + string path = "pic"; + string path_name = path + "/" + _curMotion.png_name;// +std::to_string(i) + ".png"; loadTextureExample(UTF8ToWideString(path_name), m_texs[i], true); if (kThick) { @@ -1157,8 +1165,9 @@ void FaceApp::changeMotion(Motion& motion) loadTextureExample(UTF8ToWideString(path_name_ex), m_texs_ex[i], true); } #else - string path = _curMotion.type + "/" + _curMotion.technique + "/" + _curMotion.step + "/" + _curMotion.show_type; - string path_name = path + "/" + _curMotion.png_name + std::to_string(i) + ".png"; + //string path = _curMotion.type + "/" + _curMotion.technique + "/" + _curMotion.step + "/" + _curMotion.show_type; + string path = "pic"; + string path_name = path + "/" + _curMotion.png_name;// +std::to_string(i) + ".png"; loadTexture(path_name, m_texs[i], true); if (kThick) { diff --git a/vulkan/FaceApp.h b/vulkan/FaceApp.h index bff2b65..4c00f36 100644 --- a/vulkan/FaceApp.h +++ b/vulkan/FaceApp.h @@ -19,7 +19,7 @@ struct Motion { string png_name; int png_num; string getMotionId() { - return type + technique + step + show_type; + return type + technique + step + show_type + png_name; } NLOHMANN_DEFINE_TYPE_INTRUSIVE(Motion, type, technique, step, show_type, png_name, png_num) }; @@ -104,7 +104,7 @@ private: VkPipelineLayout m_pipelineLayout = VK_NULL_HANDLE; VkDescriptorSetLayout m_descriptorSetLayout = VK_NULL_HANDLE; vector m_descriptor_sets; - const int kMaxTexture = 20; + const int kMaxTexture = 2; vector m_texs; vector m_texs_ex; @@ -137,8 +137,10 @@ private: VkDescriptorSetLayout m_descriptorSetLayout_bg = VK_NULL_HANDLE; VkDescriptorSet m_descriptor_set_bg = VK_NULL_HANDLE; - void changeMotion(Motion& motion); + public: + void changeMotion(const char* json); + void changeMotion(Motion& motion); InitArg _initArg; Motion _curMotion; int _curTexIndex = 0; diff --git a/vulkan/main.cpp b/vulkan/main.cpp index c6665de..9ff3f7f 100644 --- a/vulkan/main.cpp +++ b/vulkan/main.cpp @@ -53,7 +53,7 @@ int main() { motion.technique = "基础上妆"; motion.step = "2按压"; motion.show_type = "方向示意图"; - motion.png_name = "test"; + motion.png_name = "4.png"; motion.png_num = 1; #