我想制作一个通过 SDL_CreateWindowFrom 函数包装 SDL 渲染表面的自定义 VCL 控件。SDL_CreateWindowFrom 采用现有的 HWND 句柄并将高性能渲染上下文(它有多个可用的后端,包括 DirectX 和 OpenGL)放到它上面。
帮助文件显示“不要在组件创建或流式传输期间引用 Handle 属性。” 但它没有说明原因。它表示当您第一次尝试访问 Handle 属性时,它将调用 HandleNeeded 以确保存在有效的句柄。
所以我有两个问题。1:在组件创建过程中不应该引用Handle属性的原因是什么?2. 如果控件的全部目的是包装需要初始化 HWND 的渲染表面,那么何时可以安全地执行(理想情况下)应该在创建/流式传输期间进行的初始化?