private Matrix GetZoomAndMatrix(Layer layer, Camera camera)
{
Matrix matrix;
if (layer.LayerCameraSettings != null)
{
if (layer.LayerCameraSettings.IsInScreenSpace)
{
float zoom = 1;
if (layer.LayerCameraSettings.Zoom.HasValue)
{
zoom = layer.LayerCameraSettings.Zoom.Value;
}
matrix = Matrix.CreateScale(zoom);
CurrentZoom = zoom;
}
else
{
float zoom = camera.Zoom;
if (layer.LayerCameraSettings.Zoom.HasValue)
{
zoom = layer.LayerCameraSettings.Zoom.Value;
}
matrix = Camera.GetTransformationMatirx(camera.X, camera.Y, zoom, camera.ClientWidth, camera.ClientHeight);
CurrentZoom = zoom;
}
}
else
{
matrix = camera.GetTransformationMatrix();
CurrentZoom = camera.Zoom;
}
return matrix;
}