Ignore:
Timestamp:
Aug 7, 2022, 3:02:24 PM (2 years ago)
Author:
alloc
Message:

Major refactoring/cleanup

Location:
binary-improvements2/MapRendering/src
Files:
1 added
1 moved

Legend:

Unmodified
Added
Removed
  • binary-improvements2/MapRendering/src/MapRenderBlockBuffer.cs

    r390 r391  
    66using UnityEngine.Profiling;
    77
    8 namespace AllocsFixes.MapRendering {
     8namespace MapRendering {
    99        public class MapRenderBlockBuffer {
    10                 private readonly Texture2D blockMap = new Texture2D (Constants.MAP_BLOCK_SIZE, Constants.MAP_BLOCK_SIZE, Constants.DEFAULT_TEX_FORMAT, false);
     10                private readonly Texture2D blockMap = new Texture2D (Constants.MapBlockSize, Constants.MapBlockSize, Constants.DefaultTextureFormat, false);
    1111                private readonly MapTileCache cache;
    1212                private readonly NativeArray<int> emptyImageData;
    13                 private readonly Texture2D zoomBuffer = new Texture2D (Constants.MAP_BLOCK_SIZE / 2, Constants.MAP_BLOCK_SIZE / 2, Constants.DEFAULT_TEX_FORMAT, false);
     13                private readonly Texture2D zoomBuffer = new Texture2D (Constants.MapBlockSize / 2, Constants.MapBlockSize / 2, Constants.DefaultTextureFormat, false);
    1414                private readonly int zoomLevel;
    1515                private readonly string folderBase;
    1616               
    17                 private Vector2i currentBlockMapPos = new Vector2i (Int32.MinValue, Int32.MinValue);
     17                private Vector2i currentBlockMapPos = new Vector2i (int.MinValue, int.MinValue);
    1818                private string currentBlockMapFolder = string.Empty;
    1919
     
    2121                        zoomLevel = _level;
    2222                        cache = _cache;
    23                         folderBase = Constants.MAP_DIRECTORY + "/" + zoomLevel + "/";
     23                        folderBase = Constants.MapDirectory + "/" + zoomLevel + "/";
    2424
    2525                        {
    2626                                // Initialize empty tile data
    2727                                Color nullColor = new Color (0, 0, 0, 0);
    28                                 for (int x = 0; x < Constants.MAP_BLOCK_SIZE; x++) {
    29                                         for (int y = 0; y < Constants.MAP_BLOCK_SIZE; y++) {
     28                                for (int x = 0; x < Constants.MapBlockSize; x++) {
     29                                        for (int y = 0; y < Constants.MapBlockSize; y++) {
    3030                                                blockMap.SetPixel (x, y, nullColor);
    3131                                        }
     
    3939                }
    4040
    41                 public TextureFormat FormatSelf {
    42                         get { return blockMap.format; }
    43                 }
     41                public TextureFormat FormatSelf => blockMap.format;
    4442
    4543                public void ResetBlock () {
    4644                        currentBlockMapFolder = string.Empty;
    47                         currentBlockMapPos = new Vector2i (Int32.MinValue, Int32.MinValue);
     45                        currentBlockMapPos = new Vector2i (int.MinValue, int.MinValue);
    4846                        cache.ResetTile (zoomLevel);
    4947                }
     
    9492
    9593                public void SetPart (Vector2i _offset, int _partSize, Color32[] _pixels) {
    96                         if (_offset.x + _partSize > Constants.MAP_BLOCK_SIZE || _offset.y + _partSize > Constants.MAP_BLOCK_SIZE) {
    97                                 Log.Error (string.Format ("MapBlockBuffer[{0}].SetPart ({1}, {2}, {3}) has blockMap.size ({4}/{5})",
    98                                         zoomLevel, _offset, _partSize, _pixels.Length, Constants.MAP_BLOCK_SIZE, Constants.MAP_BLOCK_SIZE));
     94                        if (_offset.x + _partSize > Constants.MapBlockSize || _offset.y + _partSize > Constants.MapBlockSize) {
     95                                Log.Error (
     96                                        $"MapBlockBuffer[{zoomLevel}].SetPart ({_offset}, {_partSize}, {_pixels.Length}) has blockMap.size ({Constants.MapBlockSize}/{Constants.MapBlockSize})");
    9997                                return;
    10098                        }
     
    107105                public Color32[] GetHalfScaled () {
    108106                        Profiler.BeginSample ("HalfScaled.ResizeBuffer");
    109                         zoomBuffer.Resize (Constants.MAP_BLOCK_SIZE, Constants.MAP_BLOCK_SIZE);
     107                        zoomBuffer.Resize (Constants.MapBlockSize, Constants.MapBlockSize);
    110108                        Profiler.EndSample ();
    111109
     
    125123
    126124                        Profiler.BeginSample ("HalfScaled.Scale");
    127                         TextureScale.Point (zoomBuffer, Constants.MAP_BLOCK_SIZE / 2, Constants.MAP_BLOCK_SIZE / 2);
     125                        TextureScale.Point (zoomBuffer, Constants.MapBlockSize / 2, Constants.MapBlockSize / 2);
    128126                        Profiler.EndSample ();
    129127
     
    136134
    137135                public void SetPartNative (Vector2i _offset, int _partSize, NativeArray<int> _pixels) {
    138                         if (_offset.x + _partSize > Constants.MAP_BLOCK_SIZE || _offset.y + _partSize > Constants.MAP_BLOCK_SIZE) {
    139                                 Log.Error (string.Format ("MapBlockBuffer[{0}].SetPart ({1}, {2}, {3}) has blockMap.size ({4}/{5})",
    140                                         zoomLevel, _offset, _partSize, _pixels.Length, Constants.MAP_BLOCK_SIZE, Constants.MAP_BLOCK_SIZE));
     136                        if (_offset.x + _partSize > Constants.MapBlockSize || _offset.y + _partSize > Constants.MapBlockSize) {
     137                                Log.Error (
     138                                        $"MapBlockBuffer[{zoomLevel}].SetPart ({_offset}, {_partSize}, {_pixels.Length}) has blockMap.size ({Constants.MapBlockSize}/{Constants.MapBlockSize})");
    141139                                return;
    142140                        }
     
    157155                public NativeArray<int> GetHalfScaledNative () {
    158156                        Profiler.BeginSample ("HalfScaledNative.ResizeBuffer");
    159                         if (zoomBuffer.format != blockMap.format || zoomBuffer.height != Constants.MAP_BLOCK_SIZE / 2 || zoomBuffer.width != Constants.MAP_BLOCK_SIZE / 2) {
    160                                 zoomBuffer.Resize (Constants.MAP_BLOCK_SIZE / 2, Constants.MAP_BLOCK_SIZE / 2, blockMap.format, false);
     157                        if (zoomBuffer.format != blockMap.format || zoomBuffer.height != Constants.MapBlockSize / 2 || zoomBuffer.width != Constants.MapBlockSize / 2) {
     158                                zoomBuffer.Resize (Constants.MapBlockSize / 2, Constants.MapBlockSize / 2, blockMap.format, false);
    161159                        }
    162160                        Profiler.EndSample ();
     
    178176                        int newHeight = _targetTex.height;
    179177                       
    180                         float ratioX = ((float) oldWidth) / newWidth;
    181                         float ratioY = ((float) oldHeight) / newHeight;
    182 
    183                         for (var y = 0; y < newHeight; y++) {
    184                                 var oldLineStart = (int) (ratioY * y) * oldWidth;
    185                                 var newLineStart = y * newWidth;
    186                                 for (var x = 0; x < newWidth; x++) {
     178                        float ratioX = (float) oldWidth / newWidth;
     179                        float ratioY = (float) oldHeight / newHeight;
     180
     181                        for (int y = 0; y < newHeight; y++) {
     182                                int oldLineStart = (int) (ratioY * y) * oldWidth;
     183                                int newLineStart = y * newWidth;
     184                                for (int x = 0; x < newWidth; x++) {
    187185                                        targetData [newLineStart + x] = srcData [(int) (oldLineStart + ratioX * x)];
    188186                                }
     
    198196
    199197                        Profiler.BeginSample ("LoadImage");
    200                         if (array != null && blockMap.LoadImage (array) && blockMap.height == Constants.MAP_BLOCK_SIZE &&
    201                             blockMap.width == Constants.MAP_BLOCK_SIZE) {
     198                        if (array != null && blockMap.LoadImage (array) && blockMap.height == Constants.MapBlockSize &&
     199                            blockMap.width == Constants.MapBlockSize) {
    202200                                Profiler.EndSample ();
    203201
     
    211209                        }
    212210
    213                         if (blockMap.format != Constants.DEFAULT_TEX_FORMAT || blockMap.height != Constants.MAP_BLOCK_SIZE ||
    214                             blockMap.width != Constants.MAP_BLOCK_SIZE) {
    215                                 blockMap.Resize (Constants.MAP_BLOCK_SIZE, Constants.MAP_BLOCK_SIZE, Constants.DEFAULT_TEX_FORMAT,
     211                        if (blockMap.format != Constants.DefaultTextureFormat || blockMap.height != Constants.MapBlockSize ||
     212                            blockMap.width != Constants.MapBlockSize) {
     213                                blockMap.Resize (Constants.MapBlockSize, Constants.MapBlockSize, Constants.DefaultTextureFormat,
    216214                                        false);
    217215                        }
Note: See TracChangeset for help on using the changeset viewer.