J3D在UOS+KIRIN崩溃1:直接原因分析

简介: J3D在UOS+KIRIN崩溃1:直接原因分析

代码

 

System.out.println(new VirtualUniverse());
      GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D();
      System.out.println("template="+template);
      //X11GraphicsDevice
      GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
      System.out.println("device="+device);
      sun.awt.X11GraphicsDevice x11device = (sun.awt.X11GraphicsDevice)device;
      GraphicsConfiguration[]  configs = x11device.getConfigurations();
      config = template.getBestConfiguration(configs);
         System.out.println(config);

javax.media.j3d.JoglGraphicsConfiguration

JoglPipeline

上述类,仅在getBestConfiguration()新建


Renderer(继承自J3dThread)

doWork()调用。


崩溃原因:

JoglPipeline.getBestConfiguration(),大约8730处开始:


       

Frame f = new Frame(device.getDefaultConfiguration());
            f.setUndecorated(true);
            f.setLayout(new BorderLayout());
            capturer = new CapabilitiesCapturer();
            try {
                awtConfig = createAwtGraphicsConfiguration(caps, capturer, screen);
                QueryCanvas canvas = new QueryCanvas(awtConfig, capturer);
                f.add(canvas, BorderLayout.CENTER);
                f.setSize(MIN_FRAME_SIZE, MIN_FRAME_SIZE);
                f.setVisible(true);

在setVisible()的时候,嗝屁了。


JoglPipeline$QueryCanvas.addNotify()

glDrawable.setRealized(true);


GLDrawableImpl.setRealized()

类不同:

正确:jogamp.opengl.x11.glx.X11OnscreenGLXDrawable(两层继承:X11GLXDrawable, GLDrawableImpl) implements GLDrawable


错误:jogamp.opengl.egl.EGLDrawable(继承GLDrawableImpl)


到了这里,直接原因清楚了。之后就是研究,为什么glDrawable不同。

目录
相关文章
|
JavaScript API
Vue3中的计算属性能否动态修改
【9月更文挑战第5天】Vue3中的计算属性能否动态修改
520 10
|
jenkins 持续交付 开发工具
【gitlab】旧的gitlab项目迁移新的gitlab
【gitlab】旧的gitlab项目迁移新的gitlab
2016 0
|
NoSQL Redis 监控
redis-shake数据同步&迁移&备份导入导出工具使用介绍
redis-shake是阿里云Redis&MongoDB团队开源的用于redis数据同步的工具。
71277 4
redis-shake数据同步&迁移&备份导入导出工具使用介绍
|
存储 运维 监控
Elasticsearch 配置文件 path.data 中可以配置多个数据目录的路径吗?
Elasticsearch 配置文件 path.data 中可以配置多个数据目录的路径吗?
|
安全 数据可视化 数据安全/隐私保护
猿创征文|docker本地私人仓库快速搭建后的安全优化(用户鉴权和简易的web界面开启)
猿创征文|docker本地私人仓库快速搭建后的安全优化(用户鉴权和简易的web界面开启)
235 0
|
缓存 监控 Java
【Spring Boot系列】- Spring Boot侦听器Listener
【Spring Boot系列】- Spring Boot侦听器Listener
299 0
|
存储 JSON Java
Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Apollo
Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Apollo
381 1
Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Apollo
|
3天前
|
SpringCloudAlibaba 负载均衡 Dubbo
微服务架构下Feign和Dubbo的性能大比拼,到底鹿死谁手?
本文对比分析了SpringCloudAlibaba框架下Feign与Dubbo的服务调用性能及差异。Feign基于HTTP协议,使用简单,适合轻量级微服务架构;Dubbo采用RPC通信,性能更优,支持丰富的服务治理功能。通过实际测试,Dubbo在调用性能、负载均衡和服务发现方面表现更出色。两者各有适用场景,可根据项目需求灵活选择。
347 123
微服务架构下Feign和Dubbo的性能大比拼,到底鹿死谁手?