diff --git a/src/main/java/com/github/hydos/ginger/VulkanStarter.java b/src/main/java/com/github/hydos/ginger/VulkanStarter.java index 2c963a1..f4010ef 100644 --- a/src/main/java/com/github/hydos/ginger/VulkanStarter.java +++ b/src/main/java/com/github/hydos/ginger/VulkanStarter.java @@ -1,54 +1,22 @@ package com.github.hydos.ginger; import java.io.IOException; -import java.nio.IntBuffer; -import java.nio.LongBuffer; +import java.nio.*; import org.lwjgl.PointerBuffer; -import org.lwjgl.glfw.GLFW; -import org.lwjgl.glfw.GLFWFramebufferSizeCallback; -import org.lwjgl.glfw.GLFWKeyCallback; -import org.lwjgl.glfw.GLFWVulkan; +import org.lwjgl.glfw.*; import org.lwjgl.system.MemoryUtil; -import org.lwjgl.vulkan.EXTDebugReport; -import org.lwjgl.vulkan.KHRSwapchain; -import org.lwjgl.vulkan.VK12; -import org.lwjgl.vulkan.VkCommandBuffer; -import org.lwjgl.vulkan.VkCommandBufferAllocateInfo; -import org.lwjgl.vulkan.VkCommandBufferBeginInfo; -import org.lwjgl.vulkan.VkCommandPoolCreateInfo; -import org.lwjgl.vulkan.VkDescriptorBufferInfo; -import org.lwjgl.vulkan.VkDescriptorPoolCreateInfo; -import org.lwjgl.vulkan.VkDescriptorPoolSize; -import org.lwjgl.vulkan.VkDescriptorSetAllocateInfo; -import org.lwjgl.vulkan.VkDescriptorSetLayoutBinding; -import org.lwjgl.vulkan.VkDescriptorSetLayoutCreateInfo; -import org.lwjgl.vulkan.VkDevice; -import org.lwjgl.vulkan.VkFormatProperties; -import org.lwjgl.vulkan.VkInstance; -import org.lwjgl.vulkan.VkPhysicalDevice; -import org.lwjgl.vulkan.VkPhysicalDeviceMemoryProperties; -import org.lwjgl.vulkan.VkPipelineVertexInputStateCreateInfo; -import org.lwjgl.vulkan.VkPresentInfoKHR; -import org.lwjgl.vulkan.VkQueue; -import org.lwjgl.vulkan.VkSemaphoreCreateInfo; -import org.lwjgl.vulkan.VkSubmitInfo; -import org.lwjgl.vulkan.VkWriteDescriptorSet; +import org.lwjgl.vulkan.*; import com.github.hydos.ginger.engine.common.info.RenderAPI; import com.github.hydos.ginger.engine.common.io.Window; -import com.github.hydos.ginger.engine.vulkan.TempMethods; -import com.github.hydos.ginger.engine.vulkan.VKConstants; +import com.github.hydos.ginger.engine.vulkan.*; import com.github.hydos.ginger.engine.vulkan.api.VKGinger; -import com.github.hydos.ginger.engine.vulkan.render.renderers.ExampleRenderer; -import com.github.hydos.ginger.engine.vulkan.render.renderers.VKMasterRenderer; -import com.github.hydos.ginger.engine.vulkan.render.ubo.Ubo; -import com.github.hydos.ginger.engine.vulkan.render.ubo.UboDescriptor; -import com.github.hydos.ginger.engine.vulkan.shaders.Pipeline; -import com.github.hydos.ginger.engine.vulkan.shaders.ShaderType; -import com.github.hydos.ginger.engine.vulkan.utils.VKDeviceProperties; -import com.github.hydos.ginger.engine.vulkan.utils.VKLoader; -import com.github.hydos.ginger.engine.vulkan.utils.VKUtils; +import com.github.hydos.ginger.engine.vulkan.model.VKVertices; +import com.github.hydos.ginger.engine.vulkan.render.renderers.*; +import com.github.hydos.ginger.engine.vulkan.render.ubo.*; +import com.github.hydos.ginger.engine.vulkan.shaders.*; +import com.github.hydos.ginger.engine.vulkan.utils.*; /** @author hydos06 * the non ARR vulkan test example */ @@ -158,12 +126,6 @@ public class VulkanStarter { throw new AssertionError("Failed to submit command buffer: " + VKUtils.translateVulkanResult(err)); } } - public static class Vertices - { - public long verticesBuf; - public VkPipelineVertexInputStateCreateInfo createInfo; - } - private static long createDescriptorPool(VkDevice device) { // We need to tell the API the number of max. requested descriptors per type @@ -303,7 +265,7 @@ public class VulkanStarter final VkQueue queue = createDeviceQueue(device, queueFamilyIndex); final long renderPass = ExampleRenderer.createRenderPass(device, colorAndDepthFormatAndSpace.colorFormat, colorAndDepthFormatAndSpace.depthFormat); final long renderCommandPool = createCommandPool(device, queueFamilyIndex); - Vertices vertices = TempMethods.createVertices(memoryProperties, device); + VKVertices vertices = TempMethods.createVertices(memoryProperties, device); Ubo ubo = new Ubo(memoryProperties, device); final long descriptorPool = createDescriptorPool(device); final long descriptorSetLayout = createDescriptorSetLayout(device); @@ -341,7 +303,7 @@ public class VulkanStarter if (renderCommandBuffers != null) { VK12.vkResetCommandPool(device, renderCommandPool, VKUtils.VK_FLAGS_NONE); } renderCommandBuffers = VKUtils.initRenderCommandBuffers(device, renderCommandPool, framebuffers, renderPass, Window.getWidth(), Window.getHeight(), pipeline, descriptorSet, - vertices.verticesBuf); + vertices.vkVerticiesBuffer); mustRecreate = false; } } diff --git a/src/main/java/com/github/hydos/ginger/engine/vulkan/TempMethods.java b/src/main/java/com/github/hydos/ginger/engine/vulkan/TempMethods.java index 44b5840..db55cea 100644 --- a/src/main/java/com/github/hydos/ginger/engine/vulkan/TempMethods.java +++ b/src/main/java/com/github/hydos/ginger/engine/vulkan/TempMethods.java @@ -1,37 +1,20 @@ package com.github.hydos.ginger.engine.vulkan; -import static org.lwjgl.system.MemoryUtil.memAddress; -import static org.lwjgl.system.MemoryUtil.memAlloc; -import static org.lwjgl.system.MemoryUtil.memAllocInt; -import static org.lwjgl.system.MemoryUtil.memAllocLong; -import static org.lwjgl.system.MemoryUtil.memAllocPointer; -import static org.lwjgl.system.MemoryUtil.memCopy; -import static org.lwjgl.system.MemoryUtil.memFree; +import static org.lwjgl.system.MemoryUtil.*; -import java.nio.ByteBuffer; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; -import java.nio.LongBuffer; +import java.nio.*; import org.lwjgl.PointerBuffer; -import org.lwjgl.vulkan.VK12; -import org.lwjgl.vulkan.VkBufferCreateInfo; -import org.lwjgl.vulkan.VkDevice; -import org.lwjgl.vulkan.VkMemoryAllocateInfo; -import org.lwjgl.vulkan.VkMemoryRequirements; -import org.lwjgl.vulkan.VkPhysicalDeviceMemoryProperties; -import org.lwjgl.vulkan.VkPipelineVertexInputStateCreateInfo; -import org.lwjgl.vulkan.VkVertexInputAttributeDescription; -import org.lwjgl.vulkan.VkVertexInputBindingDescription; +import org.lwjgl.vulkan.*; -import com.github.hydos.ginger.VulkanStarter.Vertices; import com.github.hydos.ginger.engine.vulkan.memory.VKMemory; +import com.github.hydos.ginger.engine.vulkan.model.VKVertices; import com.github.hydos.ginger.engine.vulkan.utils.VKUtils; public class TempMethods { - public static Vertices createVertices(VkPhysicalDeviceMemoryProperties deviceMemoryProperties, VkDevice device) + public static VKVertices createVertices(VkPhysicalDeviceMemoryProperties deviceMemoryProperties, VkDevice device) { ByteBuffer vertexBuffer = memAlloc(2 * 3 * (3 + 3) * 4); FloatBuffer fb = vertexBuffer.asFloatBuffer(); @@ -111,9 +94,9 @@ public class TempMethods vi.sType(VK12.VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO); vi.pVertexBindingDescriptions(bindingDescriptor); vi.pVertexAttributeDescriptions(attributeDescriptions); - Vertices ret = new Vertices(); + VKVertices ret = new VKVertices(); ret.createInfo = vi; - ret.verticesBuf = verticesBuf; + ret.vkVerticiesBuffer = verticesBuf; return ret; } diff --git a/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKModelConverter.java b/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKModelConverter.java new file mode 100644 index 0000000..4635436 --- /dev/null +++ b/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKModelConverter.java @@ -0,0 +1,11 @@ +package com.github.hydos.ginger.engine.vulkan.model; + +public class VKModelConverter +{ + + public VKVertices toVKVerticies() + { + return null; + } + +} diff --git a/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKVertices.java b/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKVertices.java new file mode 100644 index 0000000..213895b --- /dev/null +++ b/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKVertices.java @@ -0,0 +1,10 @@ +package com.github.hydos.ginger.engine.vulkan.model; + +import org.lwjgl.vulkan.VkPipelineVertexInputStateCreateInfo; + +public class VKVertices +{ + public long vkVerticiesBuffer; + public VkPipelineVertexInputStateCreateInfo createInfo; + public float[] commonVerticies; +} \ No newline at end of file diff --git a/src/main/java/com/github/hydos/ginger/engine/vulkan/render/renderers/ExampleRenderer.java b/src/main/java/com/github/hydos/ginger/engine/vulkan/render/renderers/ExampleRenderer.java index 39833a7..9719667 100644 --- a/src/main/java/com/github/hydos/ginger/engine/vulkan/render/renderers/ExampleRenderer.java +++ b/src/main/java/com/github/hydos/ginger/engine/vulkan/render/renderers/ExampleRenderer.java @@ -32,8 +32,8 @@ import org.lwjgl.vulkan.VkVertexInputBindingDescription; import com.github.hydos.ginger.VulkanStarter.DepthStencil; import com.github.hydos.ginger.VulkanStarter.Swapchain; -import com.github.hydos.ginger.VulkanStarter.Vertices; import com.github.hydos.ginger.engine.vulkan.memory.VKMemory; +import com.github.hydos.ginger.engine.vulkan.model.VKVertices; import com.github.hydos.ginger.engine.vulkan.utils.VKUtils; public class ExampleRenderer @@ -119,7 +119,7 @@ public class ExampleRenderer return framebuffers; } - public static Vertices createVertices(VkPhysicalDeviceMemoryProperties deviceMemoryProperties, VkDevice device) + public static VKVertices createVertices(VkPhysicalDeviceMemoryProperties deviceMemoryProperties, VkDevice device) { ByteBuffer vertexBuffer = memAlloc(2 * 3 * (3 + 3) * 4); FloatBuffer fb = vertexBuffer.asFloatBuffer(); @@ -199,9 +199,9 @@ public class ExampleRenderer vi.sType(VK12.VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO); vi.pVertexBindingDescriptions(bindingDescriptor); vi.pVertexAttributeDescriptions(attributeDescriptions); - Vertices ret = new Vertices(); + VKVertices ret = new VKVertices(); ret.createInfo = vi; - ret.verticesBuf = verticesBuf; + ret.vkVerticiesBuffer = verticesBuf; return ret; } }