/// <summary> /// 将swapbuffer chunk数据保存到文件 /// </summary> /// <param name="swapChunk"></param> /// <param name="path"></param> public static void SaveTextureToFile(Chunk_CreateSwapBuffer swapChunk, string path) { D3D11_SUBRESOURCE_DATA[] subDatas = null; Chunk_InitialContents initialChunk = swapChunk.chunkManager.GetInitialContentsChunk(swapChunk.resourceId); if (initialChunk != null) { subDatas = initialChunk.subDatas; } if (subDatas == null) { return; } SaveTextureToFile(subDatas, swapChunk.BackbufferDescriptor, swapChunk.chunkManager.section, path); }
/// <summary> /// 从文件加载数据到swapchunk /// </summary> /// <param name="swapChunk"></param> /// <param name="path"></param> public static void LoadTextureDataFromFile(Chunk_CreateSwapBuffer swapChunk, string path) { D3D11_SUBRESOURCE_DATA[] subDatas = null; if (subDatas == null) { Chunk_InitialContents initialChunk = swapChunk.chunkManager.GetInitialContentsChunk(swapChunk.resourceId); if (initialChunk != null) { subDatas = initialChunk.subDatas; } } if (subDatas == null) { Console.WriteLine($"can not find Texture Data of {swapChunk}"); return; } LoadTextureDataFromFile(subDatas, swapChunk.BackbufferDescriptor, swapChunk.chunkManager.section, path); }
/// <summary> /// 从图像文件加载贴图数据到Chunk, 要求图像尺寸与Chunk定义的完全一致 /// </summary> /// <param name="texChunk"></param> /// <param name="path"></param> public static void LoadTextureDataFromFile(Chunk_CreateTexture2D texChunk, string path) { D3D11_SUBRESOURCE_DATA[] subDatas = texChunk.pInitialDatas; if (subDatas == null) { Chunk_InitialContents initialChunk = texChunk.chunkManager.GetInitialContentsChunk(texChunk.resourceId); if (initialChunk != null) { subDatas = initialChunk.subDatas; } } if (subDatas == null) { Console.WriteLine($"can not find Texture Data of {texChunk}"); return; } LoadTextureDataFromFile(subDatas, texChunk.Descriptor, texChunk.chunkManager.section, path); }