refactor(render):优化渲染系统代码结构与字体加载逻辑- 简化模型点击监听器为 lambda 表达式- 移除未使用的 Mesh2D 和 ModelClickListener 导入- 使用方法引用替换匿名渲染调用- 重命名 getProgrami 方法为 getProgram

- 改进字体加载逻辑,支持多平台路径查找
- 添加字体文件不存在时的日志警告- 更新着色器程序链接与验证状态检查调用新方法名
This commit is contained in:
tzdwindows 7
2025-10-26 07:09:58 +08:00
parent 5775bc5d7e
commit 43aab9f0fd
4 changed files with 60 additions and 29 deletions

View File

@@ -1,12 +1,10 @@
package com.chuangzhou.vivid2D.test;
import com.chuangzhou.vivid2D.render.awt.ModelClickListener;
import com.chuangzhou.vivid2D.render.awt.ModelLayerPanel;
import com.chuangzhou.vivid2D.render.awt.ModelRenderPanel;
import com.chuangzhou.vivid2D.render.awt.TransformPanel;
import com.chuangzhou.vivid2D.render.model.Model2D;
import com.chuangzhou.vivid2D.render.model.ModelPart;
import com.chuangzhou.vivid2D.render.model.util.Mesh2D;
import javax.swing.*;
import java.awt.*;
@@ -108,19 +106,16 @@ public class ModelLayerPanelTest {
frame.add(bottom, BorderLayout.SOUTH);
// 添加模型点击监听器,自动更新变换面板的选中部件
renderPanel.addModelClickListener(new ModelClickListener() {
@Override
public void onModelClicked(Mesh2D mesh, float modelX, float modelY, int screenX, int screenY) {
if (mesh == null) return;
System.out.println("点击了模型:" + mesh.getName() + ",模型坐标:" + modelX + ", " + modelY + ",屏幕坐标:" + screenX + ", " + screenY);
renderPanel.addModelClickListener((mesh, modelX, modelY, screenX, screenY) -> {
if (mesh == null) return;
System.out.println("点击了模型:" + mesh.getName() + ",模型坐标:" + modelX + ", " + modelY + ",屏幕坐标:" + screenX + ", " + screenY);
// 自动更新变换面板的选中部件
List<ModelPart> selectedPart = renderPanel.getSelectedParts();
transformPanel.setSelectedParts(selectedPart);
// 自动更新变换面板的选中部件
List<ModelPart> selectedPart = renderPanel.getSelectedParts();
transformPanel.setSelectedParts(selectedPart);
// 切换到变换控制选项卡
rightTabbedPane.setSelectedIndex(1);
}
// 切换到变换控制选项卡
rightTabbedPane.setSelectedIndex(1);
});
// 监听窗口关闭,确保释放 GL 资源