C++에서 이미지를 Unity 텍스처로 복사하려고합니다. 이미지는 320x240 픽셀이며 RGBA 형식입니다. 이미지가 괜찮다는 것을 확인했습니다. 나는 단단 D3D11의 전문가는 아니지만, 나는이 기능을 제대로 사용하고 있는지 아니에요UpdateSubresource에서 복사 할 내용을 어떻게 알 수 있습니까?
GraphicDeviceD3D11* gdevice = (GraphicDeviceD3D11*)graphic_device;
ID3D11DeviceContext* ctx = NULL;
gdevice->d3d11device->lpVtbl->GetImmediateContext(gdevice->d3d11device, &ctx);
if (texturePointer) {
ctx->lpVtbl->UpdateSubresource(ctx, (ID3D11Resource *)texturePointer, 0, NULL, image, imageWidth * 4, 0);
}
ctx->lpVtbl->Release(ctx);
:
것은 내가 UpdateSubresource을 사용하여 복사하려면, 여기에 코드입니다. UpdateSubresource에 주어진 이미지의 매개 변수는 이미지 버퍼 포인터와 스트라이드 만 있지만 이미지의 높이 또는 버퍼의 길이는 아닙니다.
복사를 중지 할시기를 UpdateResource는 어떻게 알 수 있습니까?
이 코드는 일부 이미지에서는 작동하지만 다른 이미지에서는 작동하지 않습니다. 이미지 버퍼 크기를 약간 넘는 메모리에 액세스 위반이 발생합니다. 따라서 제한 사항을 어딘가에 설정하지는 않습니다.
누군가가 그것에 대해 밝힐 수 있습니까?
'lpVtbl'이란 무엇입니까? 가상 테이블의 일종? 워드 프로세서는 그 포인터에 관해 아무 말도하지 않습니다. – Rakete1111