| 591 | namespace vvl { |
| 592 | |
| 593 | ImageView::ImageView(const DeviceState& device_state, const std::shared_ptr<vvl::Image>& image_state, VkImageView handle, |
| 594 | const VkImageViewCreateInfo* ci, VkFormatFeatureFlags2 ff, |
| 595 | const VkFilterCubicImageViewImageFormatPropertiesEXT& cubic_props) |
| 596 | : StateObject(handle, kVulkanObjectTypeImageView), |
| 597 | safe_create_info(ci), |
| 598 | create_info(*safe_create_info.ptr()), |
| 599 | image_state(image_state), |
| 600 | #ifdef VK_USE_PLATFORM_METAL_EXT |
| 601 | metal_imageview_export(GetMetalExport(create_info)), |
| 602 | #endif |
| 603 | is_depth_sliced(IsDepthSliceView(image_state->GetImageType(), image_state->create_flags, create_info.viewType)), |
| 604 | normalized_subresource_range(ImageView::NormalizeImageViewSubresourceRange(*image_state, create_info)), |
| 605 | range_generator(image_state->subresource_encoder, GetRangeGeneratorRange(device_state.extensions)), |
| 606 | samples(image_state->GetSamples()), |
| 607 | sampler_conversion(GetSamplerConversion(create_info)), |
| 608 | filter_cubic_props(cubic_props), |
| 609 | min_lod(GetImageViewMinLod(create_info)), |
| 610 | format_features(ff), |
| 611 | inherited_usage(GetInheritedUsage(create_info, *image_state)) { |
| 612 | } |
| 613 | |
| 614 | void ImageView::NotifyInvalidate(const StateObject::NodeList& invalid_nodes, bool unlink) { |
| 615 | for (auto& item : sub_states_) { |
nothing calls this directly
no test coverage detected