インメモリ データから SharpDX.Direct3D11.Texture2D を作成しようとしていますが、常に SharpDXException (HRESULT: 0x80070057、「パラメーターが正しくありません。」) が発生します。問題なく作成できる前に、この目的のために Texture1D を使用しました。
コードをこのサンプルに減らしましたが、それでも例外が発生します。
using (var device = new Device(DriverType.Hardware, DeviceCreationFlags.Debug)) {
// empty stream sufficient for example
var stream = new DataStream(16 * 4, true, true);
var description1D = new Texture1DDescription() {
Width = 16,
ArraySize = 1,
Format = Format.R8G8B8A8_UNorm,
MipLevels = 1,
};
using (var texture1D = new Texture1D(device, description1D, new[] { new DataBox(stream.DataPointer) })) {
// no exception on Texture1D
}
var description2D = new Texture2DDescription() {
Width = 8,
Height = 2,
ArraySize = 1,
MipLevels = 1,
Format = Format.R8G8B8A8_UNorm,
SampleDescription = new SampleDescription(1, 0),
};
using (var texture2D = new Texture2D(device, description2D, new[] { new DataBox(stream.DataPointer) })) {
// HRESULT: [0x80070057], Module: [Unknown], ApiCode: [Unknown/Unknown], Message: The parameter is incorrect.
}
}
データを渡さずにテクスチャを作成するとうまくいきます。Texture2D の初期化を修正する方法を教えてもらえますか?