direct3d9

    2熱度

    1回答

    我正在製作Direct3D應用程序,我可以使用IDirect3DDevice9::Reset和新的表示參數輕鬆地從窗口模式轉換到全屏模式。但是,當我使用相同的技巧從全屏模式切換到窗口模式時,窗口現在已經失去了邊界。 如果我嘗試做SetWindowLong到窗口樣式設置爲WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU(然後用SWP_FRAMECHANGEDSetWin

    0熱度

    1回答

    當我爲我的Direct3D9設備調用Release方法時,它返回S_FALSE,但我找不到解釋爲什麼會返回此值的任何內容。 據我所知,S_FALSE意味着它已經成功了,但一直沒有做任何事情,但我只能釋放一次。 我也不想爲我留下即使在窗口已被破壞,該裝置中釋放全屏的DirectX窗口的方法不會成功。

    0熱度

    1回答

    問題是2D特定的。 我是一個不斷更新的紋理,這是我的一個圖層的渲染目標。更新是整個紋理的重繪,並通過繪製精靈和輸出文本來執行。該操作頻繁執行,消耗了相當多的CPU,當然,我已經優化了重繪的次數以保持它不下來。 有沒有辦法在Direct3D中緩存這些操作?因爲目前我必須重複構建一系列精靈/文本操作。讓我們假設任何遊戲都在進行世界更新 - 他們如何克服這種乏味的工作?也許通過創建更多圖層? 對我來說最

    1熱度

    1回答

    我一直在嘗試在Direct3D應用程序中播放視頻,並一直試圖在DirectShow的幫助下這樣做。我的問題是,我無法找到如何將幀數據放入紋理(ISampleGrabber不會安裝)。 有沒有人知道這方面的任何方法或例子?

    2熱度

    2回答

    我是Direct3D9上的新手,並嘗試一些東西。我希望在'IDirect3DDevice9Ex'設備上使用'WaitForVSync'。但是,我不知道如何使用它並獲得VSYNC中斷。 我無法在MSDN上找到很多幫助,也沒有任何代碼片段。任何幫助,將不勝感激。 感謝, 磁光阱

    0熱度

    1回答

    是否可以創建ID3DXRenderToSurface的多個實例並使它們在線程中並行呈現?這似乎不大可能,但由於DirectX的某些方面對我來說仍然有點令人難以理解,所以我想我會問。 如果無法完成,沒有什麼大不了的。只是我正在處理的應用程序(不幸)將其對象渲染拆分爲渲染到表面的組,然後將完成的表面渲染到後臺緩衝區。我只是想,如果可以讓所有的組並行渲染,而不是連續渲染,那會很好。

    1熱度

    1回答

    我想通過動態更改偏移參數來改變亮度和對比度着色器的變化,但是我不想在每次更改着色器緩衝區時重新編譯我的着色器。 當前的shader代碼是 char shaderCode[] = " \ sampler2D screen: register(s0); \ \ float offsetBrightness = 0.0f; \ float offsetContrast = 0.9f; \ fl

    0熱度

    2回答

    我有一個創建在全屏模式下一個Direct3D 9設備,然後開始呈現應用。稍後,在創建第一個設備之後,我會以窗口模式臨時創建一個新的Direct3D設備(在同一個線程上,但針對不同的窗口)。我再次立即銷燬此設備,但不知何故,我再也無法使用Alt-Tab從全屏應用程序中刪除。儘管應用程序看起來不再焦點,但應用程序仍然處於最前端,而不是放在後臺。 如果我創造我的臨時裝置D3DDEVTYPE_NULLRE

    1熱度

    2回答

    我正在嘗試使用directx進行屏幕截圖。我嘗試了幾個頁面的代碼,這些代碼解釋瞭如何,但總是得到一個黑屏。如果有人能幫助我,我將不勝感激。 我的代碼是: int _tmain(int argc, _TCHAR* argv[]) { IDirect3DDevice9* g_pd3dDevice; //SaveScreenShot("test.bmp",D3DXIFF_BMP);

    3熱度

    2回答

    正如問題所示,我試圖拉取描述性顯示器名稱以與顯示適配器名稱相匹配。下面的代碼給了我一個像\ \ \ DISPLAY1這樣的設備ID,這是可以理解的,但不是我要找的。 // Get name. D3DADAPTER_IDENTIFIER9 d3dID; d3d9.Get().GetAdapterIdentifier(iAdapter, 0, &d3dID); dispA