JAWT_LOCK_ERROR 尝试从 JAWT_DrawingSurface 获取锁时
JAWT_LOCK_ERROR when trying to acquire lock from JAWT_DrawingSurface
简介
我正在使用 JNIWrapper 和该库的 JAWT 子组件。
我正在尝试使用以下代码获取 JAWT_DrawingSurface 上的锁:
JAWT_DrawingSurface *ds = NULL;
ds = awt.GetDrawingSurface(env, comp);
dsLocked = !(ds->Lock(ds) & JAWT_LOCK_ERROR)
但我一直认为 dsLocked
是假的。
详情
comp
通过以下方式从 Java 发送到此 JNIWrapper 代码:
Component panel = new VideoViewport().getDisplay();
panel.setBounds(150,150,150,150);
System.out.println("Handle: " + core.utils.X11.X11Utils.getDrawable(panel));
运行 VideoViewport()
或 getDisplay()
对 panel
所做的工作不多,我不知道相关细节。
问题
什么样的情况会导致获取surface的锁失败?
必须将组件添加到框架并使其可见。
当我将组件添加到 AWT Frame
对象并使其在 getDrawable(panel)
调用之前可见时,它起作用并且我能够获取表面上的锁。
简介
我正在使用 JNIWrapper 和该库的 JAWT 子组件。
我正在尝试使用以下代码获取 JAWT_DrawingSurface 上的锁:
JAWT_DrawingSurface *ds = NULL;
ds = awt.GetDrawingSurface(env, comp);
dsLocked = !(ds->Lock(ds) & JAWT_LOCK_ERROR)
但我一直认为 dsLocked
是假的。
详情
comp
通过以下方式从 Java 发送到此 JNIWrapper 代码:
Component panel = new VideoViewport().getDisplay();
panel.setBounds(150,150,150,150);
System.out.println("Handle: " + core.utils.X11.X11Utils.getDrawable(panel));
运行 VideoViewport()
或 getDisplay()
对 panel
所做的工作不多,我不知道相关细节。
问题
什么样的情况会导致获取surface的锁失败?
必须将组件添加到框架并使其可见。
当我将组件添加到 AWT Frame
对象并使其在 getDrawable(panel)
调用之前可见时,它起作用并且我能够获取表面上的锁。