Linux还不支持是吗? #136
Replies: 10 comments 47 replies
-
Linux 支持还需要增加平台相关的 window 模块,模仿其它平台实现几个接口,见 https://github.com/ejoy/ant/tree/master/pkg/ant.window/src/platform 我很多年前写过 X ,但现在应该提倡用 wayland ,如果你有兴趣,可以补充 linux wayland 的支持,欢迎提交 pr 。 |
Beta Was this translation helpful? Give feedback.
-
linux没有实现的模块有四个,不过只是想运行test/simple,就只差window模块。 Lines 145 to 153 in 4be50ac |
Beta Was this translation helpful? Give feedback.
-
window 模块主要是把窗口创建出来,转发鼠标键盘消息。可以参考 windows https://github.com/ejoy/ant/blob/master/pkg/ant.window/src/platform/windows/win32_window.cpp 的实现对着写。 传统上可以使用 X11 的接口,如果想参考,可以看看 https://github.com/bkaradzic/bgfx/blob/master/examples/common/entry/entry_x11.cpp wayland 比 X11 新一点,使用 wayland 只是一个建议,如果用 X11 api 我觉得也无所谓。 |
Beta Was this translation helpful? Give feedback.
-
请教一个小白问题:
然后在window.lua里面require的时候: 是不是这个 window就指向了luabind.cpp里面定义的lib?
|
Beta Was this translation helpful? Give feedback.
-
再请教一下,运行命令"bin/linux/debug/ant test/simple/main.lua"后,出来的是一个空的窗口吗?还是里面有内容的?我没有在window/mac运行过,所以不知道效果。这是我本地一个截图: |
Beta Was this translation helpful? Give feedback.
-
我看在win32_window.cpp里面,WndProc里面收到WM_CREATE消息的时候,调用了方法发送消息:
我猜第二个参数和第三个参数是通过消息告诉底层渲染lib的窗口句柄信息,才能在窗口正确地渲染图片,对吗?那么使用X11的时候,这两个参数各需要传递什么呢?我理解可能是Dispay/Window/GC的其中之一? |
Beta Was this translation helpful? Give feedback.
-
前面说到,运行test/simple/main.lua后,停在第9步了,即“”ant.resource_manager|resource“”加载中进入等待状态:
调试了一下,发现无法运行到这一步: 原因是在初始化的时候,传递给S.init()的args为nil,导致当前任务进入等待状态: 找了一下,发现在resource_manager初始化bgfx的时候并没有传参数: 那么我想请教一下,如何让这里的任务wait继续执行?(似乎找不到方式来wakeup任务在等待的init_token): |
Beta Was this translation helpful? Give feedback.
-
我创建完窗口后,调用window_message_init传递了window handle 和display:
然后运行后发现出现segmentation fault,用gdb调试了一下,发现在bgfx的renderer_vk.cpp的 SwapChainVK::createSurface()里面,试图获取g_platformData.ndt的时候,值仍然是空的,但g_platformData.nwh的值是对的。不知道什么原因,ndt似乎还是未能传到bgfx底层渲染的地方。 BTW, 我在window.lua的render里面修改了这段(加入ndt):
里面在window.lua的WindowEvent.init也加入了这些(为了调试,先乱加一通):
|
Beta Was this translation helpful? Give feedback.
-
做了一个空的font.util的实现,可以继续跑下去了,但貌似资源compile上有问题,不确定是否和空的font.util模块实现有关系:
这是错误:
|
Beta Was this translation helpful? Give feedback.
-
好像说的是HLSL parsing的问题?Linux能用HLSL吗?(我原以为Linux只能用GLSL或者CG)
|
Beta Was this translation helpful? Give feedback.
-
我在ubuntu编译成功了,但是运行以下命令的时候出错,提示找不到window module:
bin/linux/debug/ant test/simple/main.lua
这是错误提示的一部分:
[2024-05-08 22:36:16.32]ERROR Root fatal: module 'window' not found:
no field package.preload['window']
no file '/pkg/ant.window/window.lua'
stack traceback:
( service:6 )
Beta Was this translation helpful? Give feedback.
All reactions