Added to texture class
This commit is contained in:
parent
07b2423e19
commit
6d6d9f42be
1 changed files with 19 additions and 1 deletions
|
|
@ -7,6 +7,7 @@ import net.halbear.Terrain4J.EngineCore.Vulkan.Util.VulkanBuffer;
|
||||||
import net.halbear.Terrain4J.EngineCore.Vulkan.Util.VulkanUtils;
|
import net.halbear.Terrain4J.EngineCore.Vulkan.Util.VulkanUtils;
|
||||||
import org.lwjgl.system.MemoryStack;
|
import org.lwjgl.system.MemoryStack;
|
||||||
import org.lwjgl.system.MemoryUtil;
|
import org.lwjgl.system.MemoryUtil;
|
||||||
|
import org.lwjgl.vulkan.VkBufferImageCopy;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
|
|
@ -56,11 +57,28 @@ public class Texture {
|
||||||
VulkanUtils.ImageBarrier(MemStack, commandBuffer.GetVulkanCommandBuffer(), image.getVulkanImage(),
|
VulkanUtils.ImageBarrier(MemStack, commandBuffer.GetVulkanCommandBuffer(), image.getVulkanImage(),
|
||||||
VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_2_NONE, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_ASPECT_COLOR_BIT);
|
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_2_NONE, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_ASPECT_COLOR_BIT);
|
||||||
//finish this later
|
RecordCopyBuffer(MemStack, commandBuffer, stgBuffer);
|
||||||
|
VulkanUtils.ImageBarrier(MemStack, commandBuffer.GetVulkanCommandBuffer(), image.getVulkanImage(),
|
||||||
|
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
|
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT,VK_IMAGE_ASPECT_COLOR_BIT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void RecordCopyBuffer(MemoryStack MemStack, CommandBuffer commandBuffer, VulkanBuffer bufferData){
|
||||||
|
VkBufferImageCopy.Buffer Region = VkBufferImageCopy.calloc(1, MemStack)
|
||||||
|
.bufferOffset(0)
|
||||||
|
.bufferRowLength(0)
|
||||||
|
.bufferImageHeight(0)
|
||||||
|
.imageSubresource(it->
|
||||||
|
it.aspectMask(VK_IMAGE_ASPECT_COLOR_BIT)
|
||||||
|
.mipLevel(0)
|
||||||
|
.baseArrayLayer(0)
|
||||||
|
.layerCount(1)
|
||||||
|
).imageOffset(it->it.x(0).y(0).z(0))
|
||||||
|
.imageExtent(it->it.width(Width).height(Height).depth(1));
|
||||||
|
}
|
||||||
|
|
||||||
public void CleanUp(VulkanContext VkCtx){
|
public void CleanUp(VulkanContext VkCtx){
|
||||||
CleanUpStgBuffer(VkCtx);
|
CleanUpStgBuffer(VkCtx);
|
||||||
imageView.cleanup(VkCtx.GetDevice());
|
imageView.cleanup(VkCtx.GetDevice());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue