Restore textures background back to Visject surface

#3866
This commit is contained in:
2026-03-31 21:45:29 +02:00
parent a88e3265cd
commit 917e62621d
2 changed files with 15 additions and 18 deletions
+1 -1
View File
@@ -529,7 +529,7 @@ namespace FlaxEditor
if (EnableBackground && _view != null) if (EnableBackground && _view != null)
{ {
// Draw background // Draw background
Surface.VisjectSurface.DrawBackgroundDefault(Editor.Instance.UI.VisjectSurfaceBackground, Width, Height); Surface.VisjectSurface.DrawBackgroundDefault(Editor.Instance.UI.VisjectSurfaceBackground, Size, _view.Location);
if (ShowGrid) if (ShowGrid)
{ {
+14 -17
View File
@@ -65,8 +65,9 @@ namespace FlaxEditor.Surface
/// </summary> /// </summary>
protected virtual void DrawBackground() protected virtual void DrawBackground()
{ {
DrawBackgroundSolidColor(Style.BackgroundColor, Width, Height); DrawBackgroundDefault(Style.Background, Size, _rootControl.Location);
DrawGridBackground(Width, Height); //DrawBackgroundSolidColor(Style.BackgroundColor, Width, Height);
DrawGridBackground();
} }
internal static void DrawBackgroundSolidColor(Color color, float width, float height) internal static void DrawBackgroundSolidColor(Color color, float width, float height)
@@ -75,7 +76,7 @@ namespace FlaxEditor.Surface
Render2D.FillRectangle(backgroundRect, color); Render2D.FillRectangle(backgroundRect, color);
} }
internal void DrawGridBackground(float width, float height) internal void DrawGridBackground()
{ {
var viewRect = GetClientArea(); var viewRect = GetClientArea();
var upperLeft = _rootControl.PointFromParent(viewRect.Location); var upperLeft = _rootControl.PointFromParent(viewRect.Location);
@@ -92,7 +93,7 @@ namespace FlaxEditor.Surface
private void DrawAxis(Float2 axis, Rectangle viewRect, float min, float max, float pixelRange) private void DrawAxis(Float2 axis, Rectangle viewRect, float min, float max, float pixelRange)
{ {
var linesColor = Style.BackgroundColor.RGBMultiplied(1.2f); var linesColor = Style.BackgroundColor.RGBMultiplied(1.2f);
float[] _gridTickStrengths = { 0f }; float[] gridTickStrengths = null;
Utilities.Utils.DrawCurveTicks((decimal tick, double step, float strength) => Utilities.Utils.DrawCurveTicks((decimal tick, double step, float strength) =>
{ {
var p = _rootControl.PointToParent(axis * (float)tick); ; var p = _rootControl.PointToParent(axis * (float)tick); ;
@@ -105,31 +106,27 @@ namespace FlaxEditor.Surface
); );
Render2D.FillRectangle(lineRect, linesColor.AlphaMultiplied(strength)); Render2D.FillRectangle(lineRect, linesColor.AlphaMultiplied(strength));
}, Utilities.Utils.CurveTickSteps, ref _gridTickStrengths, min, max, pixelRange); }, Utilities.Utils.CurveTickSteps, ref gridTickStrengths, min, max, pixelRange);
} }
internal static void DrawBackgroundDefault(Texture background, float width, float height) internal static void DrawBackgroundDefault(Texture background, Float2 size, Float2 offset)
{ {
if (background && background.ResidentMipLevels > 0) if (background && background.ResidentMipLevels > 0)
{ {
var bSize = background.Size; var bSize = background.Size;
float bw = bSize.X; var pos = Float2.Mod(offset / bSize) * bSize;
float bh = bSize.Y; var max = Float2.Ceil(size / bSize + 1.0f);
var pos = Float2.Mod(bSize);
if (pos.X > 0) if (pos.X > 0)
pos.X -= bw; pos.X -= bSize.X;
if (pos.Y > 0) if (pos.Y > 0)
pos.Y -= bh; pos.Y -= bSize.Y;
int maxI = Mathf.CeilToInt(width / bw + 1.0f); for (int i = 0; i < max.X; i++)
int maxJ = Mathf.CeilToInt(height / bh + 1.0f);
for (int i = 0; i < maxI; i++)
{ {
for (int j = 0; j < maxJ; j++) for (int j = 0; j < max.Y; j++)
{ {
Render2D.DrawTexture(background, new Rectangle(pos.X + i * bw, pos.Y + j * bh, bw, bh), Color.White); Render2D.DrawTexture(background, new Rectangle(pos.X + i * bSize.X, pos.Y + j * bSize.Y, bSize), Color.White);
} }
} }
} }