Nvy の改造をしてだいたい構造を理解した。 msgpack-rpc-asio をオーバーホールして使えるようになった。 ということで一から組みなおすで。

GitHub - ousttrue/NvimTexture: NeoVim frontend based Nvy
NeoVim frontend based Nvy. Contribute to ousttrue/NvimTexture development by creating an account on GitHub.
GitHub - ousttrue/NvimTexture: NeoVim frontend based Nvy favicon https://github.com/ousttrue/NvimTexture
GitHub - ousttrue/NvimTexture: NeoVim frontend based Nvy

部品を疎結合にする

  • Window(HWND, resize, keyboard, mouse event)
  • NvimPipe(stdin, stdout, msgpack-rpc transport)
  • EventDispatcher(WindowEvent と MsgPackRPCMessage の処理)
  • D3D DeviceManager
  • D3D Renderer(RenderTarget)
+--------+
+----+ pipe |Renderer|redraw
|nvim|----->+--------+
| |<-----+------+
+----+ |Window|resize, keyboard, mouse event
+------+
  • MainLoop
  • NvimMsgPackRPC Read-Dispatch Loop
  • RenderLoop(30FPS)

Sample

  • FullWindow
  • imgui と混在させる

20210910

それなりに動くようになった。 key-logger や msgpack-rpc の通信ログを横に表示できるようにしたい。