मुझे जीडीआई और डी 3 डी 11 के साथ एक बनावट में एक पाठ खींचने के साथ कुछ मदद चाहिए। मैंने डी 2 डी/डायरेक्टवाइट का उपयोग करने की कोशिश की, लेकिन यह सिर्फ डी 3 डी 10 का समर्थन करता है और डी 3 डी 11 की आवश्यकता नहीं है। मैंने जो भी कोशिश की वह अब तक विफल रही है ... अब मैं बनावट में लिखने के लिए जीडीआई मेथोड का उपयोग करना चाहता हूं। तो मैं एक बनावट बनाई इस के साथ पैरामीटर:डी 3 डी 11: जीडीआईडीआई सतह पर जीडीआई टेक्स्ट कैसे आकर्षित करें? (डी 2 डी के बिना)
Usage = D3D11_USAGE_DEFAULT;
Format = DXGI_FORMAT_B8G8R8A8_UNORM;
BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;
CPUAccessFlags = 0;
MiscFlags = D3D11_RESOURCE_MISC_GDI_COMPATIBLE
तो मैं माइक्रोसॉफ्ट sais यहाँ के रूप में इस बनावट से एक सामान्य RenderTargetView बनाया: http://msdn.microsoft.com/en-us/library/ff476203%28v=vs.85%29.aspx
अगला चरण:
m_pTexFSText->QueryInterface(__uuidof(IDXGISurface1), (void **)(&m_pDXGISurface));
: DXGI इंटरफ़ेस जाओ
रेंडर फ़ंक्शन पर मैं बस यह करता हूं:
m_pDeviceContext->OMSetRenderTargets(1,&m_pTextRenderTarget,NULL);
HDC hDc = NULL;
if(FAILED(m_pDXGISurface->GetDC(TRUE,&hDc)))
return E_FAIL;
COLORREF bla = SetPixel(hDc,1,1,RGB(255,255,255));
bool hmm = TextOutA(hDc, 10, 10, "LALALA!", 7);
if(FAILED(m_pDXGISurface->ReleaseDC(NULL)))
return E_FAIL;
समस्या यह है कि उस जीडीआई ड्राइंग के बाद बनावट अभी भी खाली है (पीईक्स के साथ भी परीक्षण किया गया है)। सब कुछ काम करता है और कोई त्रुटि संदेश नहीं हैं।
मुझे आशा है कि कोई भी यह समझा सकता है कि यह कैसे काम करता है।
धन्यवाद, स्टीफन
संपादित करें: (प्रलेखन के अनुसार) भी यह कोशिश की GetDC(FALSE,&hDc)
साथ: एक ही परिणाम -> कुछ भी नहीं।
क्या आपने 'DXGI_FORMAT_R8G8B8A8_UINT' के प्रारूप का प्रयास किया है? – Necrolis
एक GDI संगत बनावट ऊपर के लिंक पर दस्तावेज के अनुसार की जरूरत है विशेष प्रारूपों "आप निम्नलिखित प्रकार से एक के लिए बनावट प्रारूप सेट करना होगा: DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_TYPELESS, DXGI_FORMAT_B8G8R8A8_UNORM_SRGB" – sandicz