@@ -35,10 +35,10 @@ struct DirectXAtlasTexture {
}
impl DirectXAtlas {
- pub(crate) fn new(device: ID3D11Device, device_context: ID3D11DeviceContext) -> Self {
+ pub(crate) fn new(device: &ID3D11Device, device_context: &ID3D11DeviceContext) -> Self {
DirectXAtlas(Mutex::new(DirectXAtlasState {
- device,
- device_context,
+ device: device.clone(),
+ device_context: device_context.clone(),
monochrome_textures: Default::default(),
polychrome_textures: Default::default(),
tiles_by_key: Default::default(),
@@ -56,12 +56,12 @@ impl DirectXAtlas {
pub(crate) fn handle_device_lost(
&self,
- device: ID3D11Device,
- device_context: ID3D11DeviceContext,
+ device: &ID3D11Device,
+ device_context: &ID3D11DeviceContext,
) {
let mut lock = self.0.lock();
- lock.device = device;
- lock.device_context = device_context;
+ lock.device = device.clone();
+ lock.device_context = device_context.clone();
lock.monochrome_textures = AtlasTextureList::default();
lock.polychrome_textures = AtlasTextureList::default();
lock.tiles_by_key.clear();