当前位置: 首页>>代码示例>>C#>>正文


C# Texture.UnlockRectangle方法代码示例

本文整理汇总了C#中Texture.UnlockRectangle方法的典型用法代码示例。如果您正苦于以下问题:C# Texture.UnlockRectangle方法的具体用法?C# Texture.UnlockRectangle怎么用?C# Texture.UnlockRectangle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Texture的用法示例。


在下文中一共展示了Texture.UnlockRectangle方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: InitEmptyTextures

        private void InitEmptyTextures()
        {
            if (emptyLightMap != null && emptyTexture != null)
                return;

            //algunos mesh no tienen textura o lightmap. Por compatibilidad con el exporter es conveniente que todas tengan Una textura
            //para eso creo una textura vacia de 1x1 negro como textura y una de 1x1 blanco para lightmap.

            var texture = new Texture(GuiController.Instance.D3dDevice, 1, 1, 1, Usage.None, Format.A8R8G8B8, Pool.Managed);
            GraphicsStream graphicsStream = texture.LockRectangle(0, LockFlags.None);
            uint color = 0x00000000;
            graphicsStream.Write(color);
            texture.UnlockRectangle(0);

            TextureLoader.Save("emptyTexture.jpg", ImageFileFormat.Jpg, texture);

            emptyTexture = new TgcTexture("emptyTexture.jpg","emptyTexture.jpg", texture, false);


            texture = new Texture(GuiController.Instance.D3dDevice, 1, 1, 1, Usage.None, Format.A8R8G8B8, Pool.Managed);
            graphicsStream = texture.LockRectangle(0, LockFlags.None);
            color = 0x00000000;
            graphicsStream.Write(color);
            texture.UnlockRectangle(0);

            TextureLoader.Save("emptyLightMap.jpg", ImageFileFormat.Jpg, texture);

            emptyLightMap = new TgcTexture("emptyLightMap.jpg", "emptyLightMap.jpg", texture, false);            
        }
开发者ID:aniPerezG,项目名称:barbalpha,代码行数:29,代码来源:BspLoader.cs

示例2: AnalogCamera

        public AnalogCamera(DsDevice device, Device d3dDevice)
        {
            this.d3dDevice = d3dDevice;
            texture = new Texture(d3dDevice, 720, 576, 1, Usage.Dynamic, Format.A8R8G8B8, Pool.Default);
            var desc = texture.GetLevelDescription(0);
            DataRectangle dr = texture.LockRectangle(0, LockFlags.Discard);
            int rowPitch = dr.Pitch;
            texture.UnlockRectangle(0);

            try
            {
                BuildGraph(device);
            }
            catch
            {
                Dispose();
                throw;
            }
        }
开发者ID:vizual54,项目名称:OculusFPV,代码行数:19,代码来源:AnalogCamera.cs

示例3: WriteToR32F

        public Texture WriteToR32F(Rectangle area, int numLevels, Usage usage, Pool pool)
        {
            // create texture
            Texture tex = new Texture(device, area.Width, area.Height, numLevels, usage, Format.R32F, pool);
            
            // fill with data
            //TextureLoader.FillTexture(tex, new Fill2DTextureCallback(FillR32FTexture));
            if (areaData == null || areaData.Length != area.Width * area.Height)
                areaData = new double[area.Width * area.Height];

            dataSource.Sample(area.Location, area.Size, ref areaData);
            GraphicsStream gs = tex.LockRectangle(0, LockFlags.None);

            for (int i = 0; i < areaData.Length; i++)
            {
                gs.Write((float)areaData[i]);
            }
            tex.UnlockRectangle(0);
            
            return tex;
        }
开发者ID:xuchuansheng,项目名称:GenXSource,代码行数:21,代码来源:TextureWriter.cs

示例4: NewTextureFromBitmap

        Texture NewTextureFromBitmap( Device device, Bitmap bitmap )
        {
            int w = bitmap.Width;
            int h = bitmap.Height;

            var t = new Texture( device, w, h, 1, Usage.None, Format.A8R8G8B8, Pool.Managed );

            var dest = t.LockRectangle(0,LockFlags.None);
            var src  = bitmap.LockBits( new Rectangle(0,0,w,h), ImageLockMode.ReadOnly,PixelFormat.Format32bppPArgb );
            try {
                for ( int y=0 ; y<h ; ++y ) {
                    dest.Data.Seek( y * dest.Pitch, SeekOrigin.Begin );
                    dest.Data.WriteRange( new IntPtr( src.Scan0.ToInt64() + src.Stride*y ), 4*w );
                }
            } finally {
                bitmap.UnlockBits(src);
                t.UnlockRectangle(0);
            }

            return t;
        }
开发者ID:MaulingMonkey,项目名称:Human-Castle,代码行数:21,代码来源:Assets.cs

示例5: WebCamera

        public WebCamera(DsDevice device, Device d3dDevice)
        {
            //bitmapWindow = new Test();
            //bitmapWindow.Show();
            this.d3dDevice = d3dDevice;

            texture = new Texture(d3dDevice, 1280, 720, 1, Usage.Dynamic, Format.A8R8G8B8, Pool.Default);
            //texture = Texture.FromFile(d3dDevice, ".\\Images\\checkerboard.jpg", D3DX.DefaultNonPowerOf2, D3DX.DefaultNonPowerOf2, 1, Usage.Dynamic, Format.A8R8G8B8, Pool.Default, Filter.None, Filter.None, 0);
            var desc = texture.GetLevelDescription(0);
            DataRectangle dr = texture.LockRectangle(0, LockFlags.Discard);
            int rowPitch = dr.Pitch;
            texture.UnlockRectangle(0);

            try
            {
                BuildGraph(device);
            }
            catch
            {
                Dispose();
                throw;
            }
        }
开发者ID:vizual54,项目名称:OculusFPV,代码行数:23,代码来源:Camera.cs

示例6: CreateTexture

        public unsafe void CreateTexture(BinaryReader reader)
        {

            int w = Width;// + (4 - Width % 4) % 4;
            int h = Height;// + (4 - Height % 4) % 4;
            GraphicsStream stream = null;

            Image = new Texture(DXManager.Device, w, h, 1, Usage.None, Format.A8R8G8B8, Pool.Managed);
            stream = Image.LockRectangle(0, LockFlags.Discard);
            Data = (byte*)stream.InternalDataPointer;

            byte[] decomp = DecompressImage(reader.ReadBytes(Length));

            stream.Write(decomp, 0, decomp.Length);

            stream.Dispose();
            Image.UnlockRectangle(0);

            if (HasMask)
            {
                reader.ReadBytes(12);
                w = Width;// + (4 - Width % 4) % 4;
                h = Height;// + (4 - Height % 4) % 4;

                MaskImage = new Texture(DXManager.Device, w, h, 1, Usage.None, Format.A8R8G8B8, Pool.Managed);
                stream = Image.LockRectangle(0, LockFlags.Discard);

                decomp = DecompressImage(reader.ReadBytes(Length));

                stream.Write(decomp, 0, decomp.Length);

                stream.Dispose();
                MaskImage.UnlockRectangle(0);
            }

            DXManager.TextureList.Add(this);
            TextureValid = true;
            Image.Disposing += (o, e) =>
            {
                TextureValid = false;
                Image = null;
                MaskImage = null;
                Data = null;
                DXManager.TextureList.Remove(this);
            };


            CleanTime = CMain.Time + Settings.CleanDelay;
        }
开发者ID:thedeaths,项目名称:official-mir2c-,代码行数:49,代码来源:MLibrary.cs

示例7: CreateTexture

        // Create a systemmem texture, fill with the given color and copy it to a more hardware-friendly memory pool
        public static Texture CreateTexture(int w, int h, Format format, Color4 color)
        {
            Texture texture = new Texture(Renderer.Instance.device, w, h, 1, Usage.None, format, Pool.SystemMemory);
            DataRectangle drect = texture.LockRectangle(0, LockFlags.None);
            DataStream ds = drect.Data;

            // pixelsize in bytes
            int fieldsize = 8;
            switch (format)
            {
                case Format.A8R8G8B8:
                    fieldsize = 4;
                    break;
                case Format.A16B16G16R16F:
                    fieldsize = 8;
                    break;
            }

            // Fill texture with color
            for (int j = 0; j < (w * h); j++)
            {
                int x = ((j) % (w));
                int y = ((j) / (w));

                ds.Seek((long)(y * fieldsize) + (long)(x * fieldsize), System.IO.SeekOrigin.Begin);

                switch (format)
                {
                    case Format.A8R8G8B8:
                        ds.Write<int>(color.ToArgb());
                        break;
                    case Format.A16B16G16R16F:
                        Half[] half = Half.ConvertToHalf(new float[] { color.Red, color.Green, color.Blue, color.Alpha });
                        ds.Write<Half4>(new Half4(half[0], half[1], half[2], half[3]));
                        break;
                }

            }
            texture.UnlockRectangle(0);
            Texture realtexture = new Texture(Renderer.Instance.device, w, h, 1, Usage.None, format, Pool.Default);
            Renderer.Instance.device.UpdateTexture(texture, realtexture);
            texture.Dispose();
            return realtexture;
        }
开发者ID:maesse,项目名称:CubeHags,代码行数:45,代码来源:TextureManager.cs

示例8: InitTextures

        public static void InitTextures()
        {
            TeamTextures = new Dictionary<int, Dictionary<Common.Classes.Unit, Texture>>();
            var m = Program.Instance.Map;

            foreach (Common.Map.Team team in m.Teams)
            {
                TeamTextures[team.Id] = new Dictionary<Common.Classes.Unit, Texture>();
            }

            foreach (Common.Classes.Unit u in m.UnitClasses.Values)
            {
                Texture texture_input = models.GetModel(u.Model).Texture;

                foreach (Common.Map.Team team in m.Teams)
                {
                    ClientCommon.TextureColor.B8G8R8A8 c = new ClientCommon.TextureColor.B8G8R8A8();

                    c.A = team.Color.A;
                    c.B = team.Color.B;
                    c.G = team.Color.G;
                    c.R = team.Color.R;

                    SurfaceDescription d = texture_input.GetLevelDescription(0);

                    Texture texture_output = new Texture(Program.Instance.Device, d.Width, d.Height, 0, Usage.Dynamic | Usage.AutoGenerateMipMap, Format.A8R8G8B8, Pool.Default);

                    DataRectangle DRread = texture_input.LockRectangle(0, LockFlags.ReadOnly);

                        DataRectangle DRwrite = texture_output.LockRectangle(0, LockFlags.None);

                    for (int y = 0; y < d.Height; y++)
                    {
                        for (int x = 0; x < d.Width; x++)
                        {
                            if (d.Format == Format.A8R8G8B8 || d.Format == Format.X8R8G8B8)
                            {

                                var col = DRread.Data.Read<ClientCommon.TextureColor.B8G8R8A8>();
                                if (col.A >= 1 && col.A < 255)
                                {
                                    float B = c.B;
                                    float G = c.G;
                                    float R = c.R;
                                    float A = c.A;

                                    float colB = col.B;
                                    float colG = col.G;
                                    float colR = col.R;
                                    float colA = col.A;

                                    float newCB = B * (255 - colA) / 255;
                                    float newCG = G * (255 - colA) / 255;
                                    float newCR = R * (255 - colA) / 255;
                                    float newCA = A * (255 - colA) / 255;

                                    float newColB = colB * colA / 255;
                                    float newColG = colG * colA / 255;
                                    float newColR = colR * colA / 255;
                                    float newColA = colA * colA / 255;

                                    float newFinalB = newCB + newColB;
                                    float newFinalG = newCG + newColG;
                                    float newFinalR = newCR + newColR;
                                    float newFinalA = 255;

                                    ClientCommon.TextureColor.B8G8R8A8 final = new ClientCommon.TextureColor.B8G8R8A8 { B = (byte)(newFinalB), G = (byte)(newFinalG), R = (byte)(newFinalR), A = (byte)(newFinalA) };

                                    DRwrite.Data.Write(final);
                                }
                                else
                                {
                                    DRwrite.Data.Write(col);
                                }
                            }

                        }
                    }
                    texture_input.UnlockRectangle(0);
                    texture_output.UnlockRectangle(0);
                    //Console.WriteLine(texture_output.LevelCount);
                    //Program.Instance.content.Register(team + " " + u.Model.ToString(), texture_output);
                    //texture_output.au
                    TeamTextures[team.Id].Add(u, texture_output);
                }
            }
        }
开发者ID:Keldyn,项目名称:BattleOfTheClans,代码行数:87,代码来源:GameState.cs

示例9: d3d_DxRestore

		/// <summary>
		/// Restore the mesh when the DirectX device is restored
		/// </summary>
		void d3d_DxRestore(Direct3d d3d, Device dx)
		{
			// If the direct3d device wasn't lost in the first place, don't restore it.
			// This happens the first timeMs around.
			if (mTexture != null)
				return;

			// Create mesh
			int width = mSurfDesc.Width;
			int height = mSurfDesc.Height;
			mTexture = new Texture(d3d.Dx, width, height,
									1, mSurfDesc.Usage, mSurfDesc.Format, mSurfDesc.Pool);

			// Write the texture data
			int pitch;
			GraphicsStream stream = mTexture.LockRectangle(0, LockFlags.Discard | LockFlags.NoDirtyUpdate, out pitch);
			//Debug.Assert(pitch == mPixelSizeBits*width/8); // New versions of DX fixes Pitch for us
			//Debug.Assert(pitch*height == mTextureData.Length);
			stream.Write(mTextureData);
			mTexture.UnlockRectangle(0);
			mTextureData = null;
		}
开发者ID:kasertim,项目名称:sentience,代码行数:25,代码来源:Direct3d.cs

示例10: AddTexture

        public STexture AddTexture(int W, int H, ref byte[] Data)
        {
            STexture texture = new STexture(-1);
            texture.width = W;
            texture.height = H;
            texture.w2 = NextPowerOfTwo(texture.width);
            texture.h2 = NextPowerOfTwo(texture.height);
            texture.width_ratio = texture.width / texture.w2;
            texture.height_ratio = texture.height / texture.h2;

            Texture t = new Texture(_Device, (int)texture.w2, (int)texture.h2, 0, Usage.AutoGenerateMipMap, Format.A8R8G8B8, Pool.Managed);
            DataRectangle rect = t.LockRectangle(0, LockFlags.None);
            for (int i = 0; i < Data.Length; )
            {
                rect.Data.Write(Data, i, 4 * W);
                i += 4 * W;
                rect.Data.Position = rect.Data.Position - 4 * W;
                rect.Data.Position += rect.Pitch;
            }
            t.UnlockRectangle(0);

            texture.color = new SColorF(1f, 1f, 1f, 1f);
            texture.rect = new SRectF(0f, 0f, texture.width, texture.height, 0f);
            texture.TexturePath = String.Empty;

            lock (MutexTexture)
            {
                _D3DTextures.Add(t);
                texture.index = _D3DTextures.Count - 1;
                _Textures.Add(texture);
            }
            return texture;
        }
开发者ID:hessbe,项目名称:Vocaluxe,代码行数:33,代码来源:CDirect3D.cs

示例11: Allocate

    public override void Allocate()
    {
      lock (_syncObj)
      {
        if (!IsAllocated)
        {
          byte[] buffer = new byte[TEXTURE_SIZE*TEXTURE_SIZE*4];
          int offset = 0;
          while (offset < TEXTURE_SIZE*TEXTURE_SIZE*4)
          {
            buffer[offset++] = _color.R;
            buffer[offset++] = _color.G;
            buffer[offset++] = _color.B;
            buffer[offset++] = _color.A;
          }

          _texture = new Texture(GraphicsDevice.Device, TEXTURE_SIZE, TEXTURE_SIZE, 1, Usage.Dynamic, Format.A8R8G8B8,
                Pool.Default);

          DataRectangle rect = _texture.LockRectangle(0, LockFlags.Discard);
          rect.Data.Write(buffer, 0, buffer.Length);
          _texture.UnlockRectangle(0);

          _width = TEXTURE_SIZE;
          _height = TEXTURE_SIZE;
          _allocationSize = TEXTURE_SIZE*TEXTURE_SIZE*4;
        }
      }
      // Don't hold a lock while calling external code
      FireAllocationChanged(_allocationSize);
    }
开发者ID:joconno4,项目名称:MediaPortal-2,代码行数:31,代码来源:TextureAssetCore.cs

示例12: CreateTexture

        public unsafe void CreateTexture(BinaryReader reader)
        {
            int w = Width + (4 - Width % 4) % 4;
            int h = Height + (4 - Height % 4) % 4;

            Image = new Texture(DXManager.Device, w, h, 1, Usage.None, Format.Dxt1, Pool.Managed);
            GraphicsStream stream = Image.LockRectangle(0, LockFlags.Discard);
            Data = (byte*)stream.InternalDataPointer;

            stream.Write(reader.ReadBytes(Length), 0, Length);

            stream.Dispose();
            Image.UnlockRectangle(0);

            DXManager.TextureList.Add(this);
            TextureValid = true;
            Image.Disposing += (o, e) =>
            {
                TextureValid = false;
                Image = null;
                Data = null;
                DXManager.TextureList.Remove(this);
            };

            CleanTime = CMain.Time + Settings.CleanDelay;
        }
开发者ID:xiaofengzhiyu,项目名称:CSharpMir,代码行数:26,代码来源:MLibrary.cs

示例13: loadLightMaps

        /// <summary>
        /// Cargar lightmaps
        /// </summary>
        private void loadLightMaps(BspMap bspMap)
        {
            const int LIGHTMAP_SIZE = 128*128;
            int cant_lmaps = bspMap.Data.lightBytes.Length / (LIGHTMAP_SIZE * 3);
            lightMaps = new TgcTexture[cant_lmaps];
            int[] lightInfo = new int[LIGHTMAP_SIZE];

            for (int i = 0; i < cant_lmaps; i++)
            {
                //transformo de RGB a XRGB agregandole un canal mas
                for (int j = 0; j < LIGHTMAP_SIZE; j++)
                {
                    int offset = (i*LIGHTMAP_SIZE +j)*3;

                    lightInfo[j] = changeGamma(bspMap.Data.lightBytes[offset + 0], bspMap.Data.lightBytes[offset + 1],
                                                    bspMap.Data.lightBytes[offset + 2]);
                }

                Texture tex = new Texture(GuiController.Instance.D3dDevice, 128, 128, 0, Usage.None,
                                          Format.X8R8G8B8, Pool.Managed);

                GraphicsStream graphicsStream = tex.LockRectangle(0, LockFlags.None);
                graphicsStream.Write(lightInfo);
                tex.UnlockRectangle(0);

                string filename = "qlight" + i + ".jpg";
                TextureLoader.Save(filename, ImageFileFormat.Jpg, tex);
                
                lightMaps[i] = new TgcTexture(filename, filename, tex, false);
            }
        }
开发者ID:aniPerezG,项目名称:barbalpha,代码行数:34,代码来源:BspLoader.cs

示例14: LoadVTF

        public static unsafe Texture LoadVTF(Device device, string filename)
        {
            if (filename == null)
                return null;

            // Get full path
            FCFile file = null;
            if (!filename.Contains("."))
            {
                file = FileCache.Instance.GetFile(filename + ".vtf");
            }

            if (file != null)
            {
                filename = file.FullName;
            }

            if (!File.Exists(filename))
            {
                return null;
            }

            // Init vtflib
            uint vlImage;
            VtfLib.vlInitialize();
            VtfLib.vlCreateImage(&vlImage);
            VtfLib.vlBindImage(vlImage);

            // Try to load image
            if (!VtfLib.vlImageLoad(filename, false))
            {
                System.Console.WriteLine("[SourceMaterial] Could not load load texture: " + filename);
                VtfLib.vlDeleteImage(vlImage);
                VtfLib.vlShutdown();
                return null;
            }

            // Get image description
            uint w, h;
            VtfLib.ImageFormat f;
            w = VtfLib.vlImageGetWidth();
            h= VtfLib.vlImageGetHeight();
            f = VtfLib.vlImageGetFormat();
            bool alpha = false;
            VtfLib.ImageFormat imgFormat = VtfLib.ImageFormat.ImageFormatRGB888;
            if (f == VtfLib.ImageFormat.ImageFormatDXT5)
            {
                alpha = true;
                imgFormat = VtfLib.ImageFormat.ImageFormatARGB8888;

            }

            // Convert image
            byte[] lpImageData = null;
            lpImageData = new byte[VtfLib.vlImageComputeImageSize(w, h, 1, 1, imgFormat)];
            fixed (byte* lpOutput = lpImageData)
            {
                if (!VtfLib.vlImageConvert(VtfLib.vlImageGetData(0, 0, 0, 0), lpOutput, w, h, f, imgFormat))
                {
                    System.Console.WriteLine("[SourceMaterial] VTFLib: Could not convert texture");
                }
            }

            //TextureRequirements reqs;
            //Texture.CheckTextureRequirements(device, Usage.AutoGenerateMipMap, Pool.Default, out reqs);

            // Create texture
            Format format = Format.A8R8G8B8;
            if (!alpha) format = Format.X8R8G8B8;
            Texture tex = new Texture(device, (int)w, (int)h, 1, Usage.AutoGenerateMipMap | Usage.Dynamic, format, (Renderer.Instance.Is3D9Ex ? Pool.Default : Pool.Managed));
            DataStream pData = tex.LockRectangle(0, LockFlags.None).Data;
            MemoryStream ms = new MemoryStream(lpImageData);
            // Set pixels
            for (int i = 0; i < h; i++)
            {
                for (int j = 0; j < w; j++)
                {
                    if (alpha)
                    {
                        int[] bytes = new int[] { ms.ReadByte(), ms.ReadByte(), ms.ReadByte(), ms.ReadByte() };
                        pData.Write<uint>( (uint)System.Drawing.Color.FromArgb(bytes[2], bytes[3], bytes[0], bytes[1]).ToArgb()); // wtf?

                    }
                    else
                        pData.Write<uint>((uint)System.Drawing.Color.FromArgb(ms.ReadByte(), ms.ReadByte(), ms.ReadByte()).ToArgb());
                    //pData++;
                }
            }
            tex.UnlockRectangle(0);

            // (debug) Save as bitmap
            if(false)
            {
                string prettyname = filename.Replace('/', '_');
                prettyname = prettyname.Replace('\\', '_');
                Texture.ToFile(tex, prettyname + ".png", ImageFileFormat.Png);
            }

            // Release vtflib
            VtfLib.vlDeleteImage(vlImage);
//.........这里部分代码省略.........
开发者ID:maesse,项目名称:CubeHags,代码行数:101,代码来源:SourceMaterial.cs

示例15: CreateRandomHeightMap

        public Result CreateRandomHeightMap(int seed, float noiseSize, float persistence, int octaves)
        {
            ReleaseCom(HeightMapTexture);
            HeightMapTexture = new Texture(_device, _size.X, _size.Y, 1, Usage.Dynamic, Format.L8, Pool.Default);

            var dr = HeightMapTexture.LockRectangle(0, LockFlags.None);
            for (int y = 0; y < _size.Y; y++) {
                for (int x = 0; x < _size.X; x++) {
                    var xf = (x/(float) _size.X)*noiseSize;
                    var yf = (y/(float) _size.Y)*noiseSize;
                    var total = 0.0f;

                    for (int i = 0; i < octaves; i++) {
                        var freq = MathF.Pow(2.0f, i);
                        var amp = MathF.Pow(persistence, i);

                        var tx = xf*freq;
                        var ty = yf*freq;
                        var txi = (int) tx;
                        var tyi = (int) ty;
                        var fracX = tx -txi;
                        var fracY = ty - tyi;

                        var v1 = MathF.Noise(txi + tyi*57 + seed);
                        var v2 = MathF.Noise(txi + 1 + tyi*57 + seed);
                        var v3 = MathF.Noise(txi + (tyi+1) * 57 + seed);
                        var v4 = MathF.Noise(txi+1 + (tyi + 1) * 57 + seed);

                        var i1 = MathF.CosInterpolate(v1, v2, fracX);
                        var i2 = MathF.CosInterpolate(v3, v4, fracX);
                        total += MathF.CosInterpolate(i1, i2, fracY)*amp;
                    }
                    var b = (int) (128 + total*128.0f);
                    if (b < 0) b = 0;
                    if (b > 255) b = 255;
                    dr.Data.Seek(y*dr.Pitch + x, SeekOrigin.Begin);
                    dr.Data.Write((byte) b);

                    _heightMap[x + y*_size.X] = (b/255.0f)*_maxHeight;
                }
            }
            HeightMapTexture.UnlockRectangle(0);
            return ResultCode.Success;
        }
开发者ID:ericrrichards,项目名称:rts,代码行数:44,代码来源:HeightMap.cs


注:本文中的Texture.UnlockRectangle方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。