diff --git a/CMSceneGraph b/CMSceneGraph index f2ac1fea..7c8a5888 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit f2ac1fea2f0b7961400bd7f2744afb82f3b1c927 +Subproject commit 7c8a5888a72d091e6bf6192226dec16d84d50245 diff --git a/inc/hgl/graph/VKDevice.h b/inc/hgl/graph/VKDevice.h index fa3d811f..35bc93b6 100644 --- a/inc/hgl/graph/VKDevice.h +++ b/inc/hgl/graph/VKDevice.h @@ -160,7 +160,7 @@ public: //Texture void Clear(TextureCreateInfo *); - bool ChangeTexture2D(Texture2D *,GPUBuffer *buf,const List &, VkPipelineStageFlags=VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); + bool ChangeTexture2D(Texture2D *,GPUBuffer *buf,const List &, VkPipelineStageFlags=VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); bool ChangeTexture2D(Texture2D *,GPUBuffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height, VkPipelineStageFlags=VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); bool ChangeTexture2D(Texture2D *,void *data, uint32_t left,uint32_t top,uint32_t width,uint32_t height,uint32_t size,VkPipelineStageFlags=VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); diff --git a/src/SceneGraph/TileData.cpp b/src/SceneGraph/TileData.cpp index da2e9087..bb582ccb 100644 --- a/src/SceneGraph/TileData.cpp +++ b/src/SceneGraph/TileData.cpp @@ -108,7 +108,7 @@ namespace hgl memcpy(commit_ptr,data,bytes); commit_ptr+=bytes; - ImageRegion ir; + Image2DRegion ir; ir.left =obj->uv_pixel.GetLeft(); ir.top =obj->uv_pixel.GetTop(); diff --git a/src/SceneGraph/Vulkan/VKDeviceCreater.cpp b/src/SceneGraph/Vulkan/VKDeviceCreater.cpp index ae0b7262..dc72d295 100644 --- a/src/SceneGraph/Vulkan/VKDeviceCreater.cpp +++ b/src/SceneGraph/Vulkan/VKDeviceCreater.cpp @@ -48,7 +48,7 @@ namespace #define FEATURE_COPY(name) features->name=pdf.name; FEATURE_COPY(geometryShader); -// FEATURE_COPY(multiDrawIndirect); + FEATURE_COPY(multiDrawIndirect); // FEATURE_COPY(imageCubeArray); FEATURE_COPY(samplerAnisotropy); @@ -67,7 +67,7 @@ namespace queue_info.pQueuePriorities =queue_priorities; queue_info.flags =0; //如果这里写VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,会导致vkGetDeviceQueue调用崩溃 - VkDeviceCreateInfo create_info={}; + VkDeviceCreateInfo create_info; CharPointerList ext_list; VkPhysicalDeviceFeatures features={}; @@ -76,6 +76,7 @@ namespace create_info.sType =VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; create_info.pNext =nullptr; + create_info.flags =0; create_info.queueCreateInfoCount =1; create_info.pQueueCreateInfos =&queue_info; create_info.enabledExtensionCount =ext_list.GetCount(); diff --git a/src/SceneGraph/Vulkan/VKDeviceTexture.cpp b/src/SceneGraph/Vulkan/VKDeviceTexture.cpp index cc7d93b8..8a9d2c81 100644 --- a/src/SceneGraph/Vulkan/VKDeviceTexture.cpp +++ b/src/SceneGraph/Vulkan/VKDeviceTexture.cpp @@ -37,7 +37,7 @@ namespace imageSubresource.layerCount=layer_count; } - void Set(ImageRegion *ir) + void Set(Image2DRegion *ir) { imageOffset.x=ir->left; imageOffset.y=ir->top; @@ -326,7 +326,7 @@ bool GPUDevice::CommitTexture2DMipmaps(Texture2D *tex,GPUBuffer *buf,uint32_t wi return CommitTexture2D(tex,buf,buffer_image_copy,miplevel,VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); } -bool GPUDevice::ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,const List &ir_list,VkPipelineStageFlags destinationStage) +bool GPUDevice::ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,const List &ir_list,VkPipelineStageFlags destinationStage) { if(!tex||!buf||ir_list.GetCount()<=0) return(false); @@ -339,7 +339,7 @@ bool GPUDevice::ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,const ListbufferOffset = offset; tp->bufferRowLength = 0;