delphi+directx有时编程要创建一个PrimarySurface,如:(FDirectDraw.CreateSurface(DDSurface, FPrimarySurface, nil))然后就可以对其进行操作,如显示一幅图像。好像创建的PrimarySurface就是你所看到的程序运行界面,但实际上如果不创建的话还是应该有这个Surface的。请问创建的这个和已有的什么关系?
遇到的问题是我对PrimarySurface进行的操作好像无效,看不到效果,就是说显示不出来。

解决方案 »

  1.   

    天……又是你……Primary Surface实际上对应的是整个屏幕,不同的Primary Surface的实例实际上都指向同一个表面。换句话说,如果你需要将自己建立的Primary Surface和你的某个窗口关联起来,那么必须建立一个Clipper并Attach到你的Primary Surface上,然后关联到你的窗口。但此时要注意的是,Primary Surface仍然是使用屏幕绝对坐标的,而不是相对于你的窗口的坐标。我不知道你的Primary Surface显示不出效果是什么原因。除了上述的步骤,你是否还建立了离屏表面(如果你要Blt的话),以及对Surface的Lock/Unlock是否正确等等,麻烦你自己先好好读一下MSDN吧。
      

  2.   

    忠告D3D还是VC吧,
    你真的想用delphi编3D,就用opengl
      

  3.   

    首先谢谢两位。不过likethewind(断箭)所说得我有些疑问,请问有什么理由吗