草庐IT

DirectX9

全部标签

android - Android手机可以使用windows DirectX库吗?

我有一些函数可以使用Windows中的DirectX库绘制游戏屏幕。所以,我正在尝试使用ndk来使用Android手机中的功能。但是我有一些问题。使用Java的Android手机能识别DirectX的功能吗?如果可能的话,我必须对其进行一些控制吗?我需要你的帮助... 最佳答案 Android(和iOS)不支持DirectX,但支持OpenGLES。查看3DwithOpenGL在Android开发者网站上。 关于android-Android手机可以使用windowsDirectX库吗?

c# - 从 C++ 到 C# 的 DirectX 结构数组的困难编码

目标:编码(marshal)C++(指向一个?)结构数组到C#。C++:CreateVertexDeclaration()HRESULTCreateVertexDeclaration([in]constD3DVERTEXELEMENT9*pVertexElements,[out,retval]IDirect3DVertexDeclaration9**ppDecl);C#:我正在使用this定义D3DVERTEXELEMENT9结构体。SharpDX是一个托管的DirectX库generateddirectlyfromtheDirectXSDKC++headers,因此据说它与COM互操

c++ - 着色器中的 DirectX 着色器资源 View

我现在有点困惑,只是想请大家帮我弄清楚一些想法。在HLSL着色器(例如计算着色器)中,我可以声明一个StructuredBuffersb,对吧?我是否必须将它绑定(bind)到一个寄存器,例如:register(t0)?从应用程序端,我可以调用CSSetShaderResources(...)。第一个参数(StartSlot),它与寄存器声明中“t”后面的小数字有什么关系吗?如果我将StartSlot设置为0(例如),并将第二个参数设置为2。我是否告诉API我将绑定(bind)两个着色器资源View,一个在register(t0)中,另一个在register(t1)?如果我声明Text

c++ - 在加载和保存期间缺少 DirectX 中 PNG 纹理的某些颜色?

我使用标准的DirectX函数(如CreateTexture2D、D3DX11SaveTextureToFile和D3DX11CreateShaderResourceViewFromFile)加载PNG图像,在新创建的纹理上渲染它,然后比保存到文件。所有的纹理都是两种尺寸的力量。但在此过程中,我注意到PNG中的某些颜色有点损坏(与源纹理中的颜色相似但不相同)。透明度相同(它适用于0和100%透明度部分,但不适用于例如34%)。是否有一些大的颜色近似值或我做错了什么?如果是,我该如何解决?这是这两张图片(左边是来源:底部有一些不同的颜色和一些渐变透明度;右边是加载第一张图片并在新纹理上渲

c++ - DirectX 11 帧缓冲区捕获(C++,无 Win32 或 D3DX)

我想使用DirectX11将我的前缓冲区或后缓冲区的内容捕获到一个字节数组中,然后我可以将其用作纹理或创建文件的源。到目前为止,我有一个交换链设置、大量渲染和以下代码-我确保在调用Present之后调用它。ID3D11Texture2D*pSurface;HRESULThr=m_swapChain->GetBuffer(0,__uuidof(ID3D11Texture2D),reinterpret_cast(&pSurface));if(pSurface){constintwidth=static_cast(m_window->Bounds.Width*m_dpi/96.0f);con

c++ - 每3秒DirectX应用程序 “hiccups”

我已经调查DirectX11C++应用程序中的一个问题已有一个多星期了,因此,我向StackOverflow上的好人寻求帮助,以帮助他们深入研究这一问题。我的应用程序大多数情况下将以每秒60-90帧的速度运行,但是每隔几秒钟我就会得到一帧,大约需要三分之一的时间才能完成。经过大量研究,调试和使用了各种代码分析器之后,我将其范围缩小到对DirectXAPI的调用。但是,从一个慢帧到下一个慢帧,并非总是相同的API调用引起减速。在我最近的一次运行中,停顿的call(大约持续五分之一秒)是ID3D11DeviceContext:UpdateSubresourceID3D11DeviceCon

c++ - 如何检索 DirectX 9 的错误字符串

我想检索DirectX9的错误字符串,但我可以在网上找到使用FormatMessage()和_com_error.ErrorMessage()的方法,这两个方法都让我失望。hr=g_pd3dDevice->GetRenderTargetData(......//thedebuggertellsmehr=0x8876086cFormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,NULL,hr,0,(LPTSTR)&lpBuf,0,NULL)

c++ - DirectX 11 中的视频播放

非常不言自明。Microsoft拥有用于DirectX9的DirectShow,但是将DirectShow与DX11一起使用是一场难以言喻的COM噩梦。是否有我从未听说过的视频渲染标准,或者是否有用于此目的的免费第三方库?编辑:多亏了Mgetz,我才知道微软试图提供解决方案,MediaFoundation.但是,它仅限于Windows8+,我更愿意避免这种情况。 最佳答案 这可能不完全符合您的要求,但为了您的目标,您可以看看ffmpeg、libx264和theora(用于ogg声音)或faad(解码aac)。我已经完成了使用ffmp

c++ - 非成员转换函数;类型转换不同的类型,例如DirectX vector 到 OpenGL vector

我目前正在开发一个游戏“引擎”,它需要在3D引擎、物理引擎和脚本语言之间移动值。由于我需要经常将来自物理引擎的vector应用于3D对象,并且希望能够通过脚本系统控制3D和物理对象,因此我需要一种机制来转换一种类型的vector(例如vector3d)到其他类型的vector(例如btVector3)。不幸的是,我无法对类/结构的布局方式做出任何假设,所以一个简单的reinterpret_cast可能不会。所以问题是:是否有某种“静态”/非成员转换方法基本上可以实现这一点:vector3doperatorvector3d(btVector3vector){//convertandret