Hi,
da ich so langsam auf Visual Studio 12 umsteigen möchte, da das z.B. ein besseren Compiler besitzt. Allerdings stellt sich mir da die Frage, wie ich eben Cubetexturen laden kann. Im Moment benutze ich zum Laden meiner Texturen DevIL, was für normale Texturen bis jetzt reibungslos abläuft. Nur bei Cubetexturen stellt sich da ein Problem heraus, dass die Textur mit den Daten von DevIL nicht erstellt werden kann - kann es evtl. daran liegen, dass DevIL zwar das DDS Format kann, aber nicht für Cubetexturen?
Aktuell benutze ich noch die Helferfunktion von D3DX, um die Cubetexturen zu laden, aber diese soll es in Visual Studio 12 ja nicht mehr geben.
Meine Textur versuche ich so zu erstellen:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
ID3D11Texture2D* Textur = nullptr;
D3D11_TEXTURE2D_DESC TexturDesc;
ZeroMemory(&TexturDesc, sizeof(TexturDesc));
TexturDesc.Width = Width;
TexturDesc.Height = Height;
TexturDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
TexturDesc.ArraySize = 6;
TexturDesc.MipLevels = 1;
TexturDesc.Usage = D3D11_USAGE_DEFAULT;
TexturDesc.CPUAccessFlags = 0;
TexturDesc.SampleDesc.Count = 1;
TexturDesc.SampleDesc.Quality = 0;
TexturDesc.MiscFlags = D3D11_RESOURCE_MISC_TEXTURECUBE;
TexturDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
D3D11_SUBRESOURCE_DATA TexturData;
ZeroMemory(&TexturData, sizeof(TexturData));
TexturData.pSysMem = Pixel->data(); // Enthält die Daten des Pixel, dabei ist der Datentyp ein unsigned char und die Anordnung wäre RGBA
TexturData.SysMemPitch = Width * 4;
TexturData.SysMemSlicePitch = Width * Height * 4;
mDevice->CreateTexture2D(&TexturDesc, &TexturData, &Textur); // Der HRESULT-Wert wäre: E_INVALIDARG
|
Ich bedanke mich schon mal im voraus.