skia_safe/gpu/
mutable_texture_state.rs1use 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}