草庐IT

direct-share

全部标签

windows - 报告 Direct3D 内存使用情况

我有一个Direct3D9应用程序,我想监控内存使用情况。有没有工具可以知道Direct3D使用了多少系统内存和视频内存?理想情况下,它还会报告为纹理、顶点缓冲区、索引缓冲区分配了多少... 最佳答案 您可以使用旧的DirectDraw界面查询总内存和可用内存。您通过这种方式获得的数字并不可靠。可用内存可能随时变化,可用内存通常会考虑AGP内存(严格来说不是视频内存)。您可以使用这些数字很好地猜测您的应用程序/游戏的默认纹理分辨率和细节级别,仅此而已。您可能想知道为什么没有办法获得更好的数字,毕竟跟踪资源使用情况并不难。从应用的角度

java - 在 Windows 7 上从 Java 启动 CYGWIN 构建的可执行文件失败并显示 "error while loading shared libraries: ?: No such file or directory"

有问题的代码在早期版本的Windows上或多或少地以完全相同的配置工作,但是,还不知道它是否可以在Windows7上运行!这就是我现在需要解决的问题。简而言之,一些C代码在启动Java程序之前执行一些配置和安全检查,传递一些在Java中几乎不可能轻松完成的数据。反过来,Java在适当的时间启动相同的C代码,然后它自己启动一个不同的Java程序。第二个程序启动需要完全独立,(想想nohup)因此是第二个启动。现在发生的事情是C程序以普通方式启动Java程序,但是当Java尝试启动C程序时,它会出现如下错误:/cygdrive/c/opt/ST/v3.3/bin/ST.exe:errorw

windows - 使用 Share-Delete 打开文件是否允许其他人写入?

FileShare枚举提供各种标志,例如读取、写入、删除...。通常我会认为共享文件删除只允许删除而不能做其他事情(比如阅读)。但是,我依稀记得Windows只区分文件的只读访问权限和完全访问权限,因此实际上为删除而共享也允许写入文件。遗憾的是,这是很多年前的事了,我既没有找到原始来源,也没有找到任何相关信息。是否有关于实际行为的可靠规范?它取决于操作系统还是FS? 最佳答案 查看CreateFileFunction的文档.FILE_SHARE_DELETE:Enablessubsequentopenoperationsonafil

c++ - OpenCL/GL 互操作 : write_imagef to shared gltexture is all white (1, 1,1,1)

我正在尝试使用OpenCL编写光线追踪器。但是,我遇到了一些麻烦。我想在OpenGL和OpenCL之间共享纹理内存,以避免不必要的内存来回复制。我的程序运行良好,我在每次调用GL和CL后进行检查,没有发现任何错误。如标题中所述,使用write_imagef写入内核中的纹理会在每个channel中产生1.0。我怀疑纹理格式有问题,但我一直在互联网上寻找有效的纹理格式,但我看不出有什么问题。我尝试了write_imageui和write_imagef以及纹理格式的不同组合,但没有成功。内核程序:__kernelvoidDraw(__global__write_onlyimage2d_tim

windows - C++/W32 - 录制声音、Direct Show 或 WaveInOpen?

想到WinXP、Vista、Win7++该选什么:使用DirectShow/Direct...录制音频?使用经典的WaveInOpen(我在某处看到有人说这将在W7/W8中过时-可能吗?)附言。我需要回调功能,以将缓冲区传递给编码器。谢谢! 最佳答案 WaveIn易于使用,网上有大量示例代码,它会以您需要的方式为您提供回调。DirectSound使用循环缓冲区,设置起来可能有点麻烦,很可能您需要处理循环缓冲区而不是“只是填充缓冲区”。然而,DirectSound可以让您更严格地控​​制音频,即延迟更好一些。IMO,Microsoft

windows - 有没有办法获得对以独占访问方式打开的文件的读取访问权限,即 FILE_SHARE_NONE

如果不采取肮脏和令人讨厌的方式,我相信这在用户模式下是不允许的,即使使用SE_BACKUP_NAME。我认为肮脏和令人讨厌的事情:找出哪个进程拥有句柄并编写代码以在该进程中运行并关闭句柄。读取/解析MFT/FAT表使用内核驱动 最佳答案 是的,有一种方法,尽管它可能不适合您的需要;它不脏也不讨厌,但它很重,也就是说,它的编码并不简单,如果您只是试图读取单个文件,它会产生不成比例的系统负载。但是,如果您需要这样做,这是我所知道的唯一合理且安全的解决方案:请参阅VolumeShadowCopyService上的MSDN文档.现在大多数备

windows - SetConsoleActiveScreenBuffer 使 ReadConsole 返回 ERROR_SHARING_VIOLATION

当我使用创建的缓冲区调用SetConsoleActiveScreenBuffer()时,它似乎使ReadConsole停止使用ERROR_SHARING_VIOLATION。我检查了句柄权限,据我所知,它们是正确的。如果我注释掉SetConsoleActiveScreenBuffer行,输入将完美运行。我可能在这里做错了什么?我还尝试过使用ReadFile而不是ReadConsole,并使用CreateFile而不是GetStdHandle获取输入缓冲区。两种方式,都会出现同样的错误。#includeintmain(){void*oldScreenBuffer;void*screenB

c++ - 未聚焦时 Direct2D 窗口变黑

我有一个Direct2D窗口,它在聚焦时画得很好;然而,当焦点移动到另一个窗口(同一个应用程序或另一个)时,整个窗口变黑。我将问题归结为ID2D1HwndRenderTarget::Clear的使用。此功能对我的应用程序至关重要,因为没有它,绘画会变得相当……奇怪。有没有一种方法可以让未聚焦的Direct2D窗口正常绘制(注意:WM_PAINT会像往常一样被调用,Clear也是如此,BeginPaint等都没有错误)提前致谢。 最佳答案 来自MSDN,HandlingDeviceLossWhileyourprogramisrunni

c - 警告 LNK4092 : shared writable section contains relocations

我使用VisualStudio2008,对此警告有疑问。在我们的一个库中,我们设置了“固定基地址”标志(/FIXED)并定义了一个固定基地址。我们用命令声明一个共享部分#pragmacomment(linker,"/SECTION:FOO,RWS")#pragmadata_seg("FOO")当我删除/FIXED标志时,我收到警告LINK:warningLNK4092:sharedwritablesection'FOO'containsrelocations;imagemaynotruncorrectly我知道,有了这个标志,从可执行文件加载时,dll可能会被重新定位。现在我不明白。为

c++ - 在 Direct2D 中绘制部分图像

由于GDI+相当(可笑)慢,我决定迁移到Direct2D。我在许多论坛上查找了很多主题(包括thisone),但没有成功(这也可能是由于已经很晚的事实造成的)并且Direct2D文档仍然非常薄(并且令人困惑,至少对我而言).无论如何,我有一个在Direct2D中打开的.PNG并且只想每20毫秒绘制一次它的一部分。初始化D2D内容ID2D1Factory*d2dFactory=NULL;IWICImagingFactory*d2dWICFactory=NULL;IWICBitmapDecoder*d2dDecoder=NULL;IWICFormatConverter*d2dConvert