skia_safe/gpu/
mutable_texture_state.rs

1use std::fmt;
2
3use skia_bindings::{self as sb, skgpu_MutableTextureState, SkRefCntBase};
4
5use super::BackendApi;
6use crate::prelude::*;
7
8pub type MutableTextureState = RCHandle<skgpu_MutableTextureState>;
9unsafe_send_sync!(MutableTextureState);
10
11impl NativeRefCountedBase for skgpu_MutableTextureState {
12    type Base = SkRefCntBase;
13}
14
15impl Default for MutableTextureState {
16    fn default() -> Self {
17        MutableTextureState::from_ptr(unsafe { sb::C_MutableTextureState_Construct() }).unwrap()
18    }
19}
20
21impl fmt::Debug for MutableTextureState {
22    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
23        let mut str = f.debug_struct("MutableTextureState");
24        #[cfg(feature = "vulkan")]
25        {
26            str.field(
27                "image_layout",
28                &crate::gpu::vk::mutable_texture_states::get_vk_image_layout(self),
29            )
30            .field(
31                "queue_family_index",
32                &crate::gpu::vk::mutable_texture_states::get_vk_queue_family_index(self),
33            );
34        }
35        str.field("backend", &self.backend()).finish()
36    }
37}
38
39impl MutableTextureState {
40    pub fn copied(&self) -> Self {
41        MutableTextureState::from_ptr(unsafe {
42            sb::C_MutableTextureState_CopyConstruct(self.native())
43        })
44        .unwrap()
45    }
46
47    #[cfg(feature = "vulkan")]
48    #[deprecated(
49        since = "0.72.0",
50        note = "use gpu::vk::mutable_texture_states::new_vulkan()"
51    )]
52    pub fn new_vk(layout: crate::gpu::vk::ImageLayout, queue_family_index: u32) -> Self {
53        crate::gpu::vk::mutable_texture_states::new_vulkan(layout, queue_family_index)
54    }
55
56    #[cfg(feature = "vulkan")]
57    #[deprecated(
58        since = "0.72.0",
59        note = "use gpu::vk::mutable_texture_states::get_vk_image_layout()"
60    )]
61    pub fn vk_image_layout(&self) -> sb::VkImageLayout {
62        crate::gpu::vk::mutable_texture_states::get_vk_image_layout(self)
63    }
64
65    #[cfg(feature = "vulkan")]
66    #[deprecated(
67        since = "0.72.0",
68        note = "use gpu::vk::mutable_texture_states::get_vk_queue_family_index()"
69    )]
70    pub fn queue_family_index(&self) -> u32 {
71        crate::gpu::vk::mutable_texture_states::get_vk_queue_family_index(self)
72    }
73
74    pub fn backend(&self) -> BackendApi {
75        unsafe { sb::C_MutableTextureState_backend(self.native()) }
76    }
77}