• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

104 Neutral

About wlastas

  • Rank
  1. Hello! While I waited for an answer I'll figured out with your question and now I hasten to share the code - maybe he needed someone have a vertex shader, which use a second texture in the array: [CODE]Texture2DArray tiles : register( t0 ); SamplerState tstate: register( s0 ); float4 SectorPS(Out_pos4_normal4_uv input) : SV_Target { return tiles.Sample(tstate, float3(input.uv, 1)); }[/CODE] blank textures for the transfer to the shader [CODE]Texture2D t2d_tiles = new Texture2D(device, new Texture2DDescription() { BindFlags = BindFlags.ShaderResource, ArraySize = tiles_names.Count, // << is the number of textures that will be written into an array Width = 256, Height = 256, Usage = ResourceUsage.Default, CpuAccessFlags = CpuAccessFlags.None, Format = SlimDX.DXGI.Format.R8G8B8A8_UNorm, SampleDescription = new SlimDX.DXGI.SampleDescription(1, 0), MipLevels =1, //with any other value does not work - I do not know this is a bug or a feature OptionFlags = ResourceOptionFlags.None });[/CODE] Read the texture from disk and write it into an array with index id: [CODE] t2d_tmp = Texture2D.FromFile(device, full_name, new ImageLoadInformation() { Format = Format.R8G8B8A8_UNorm, CpuAccessFlags = CpuAccessFlags.Read, MipLevels = 1, //with any other value does not work - I do not know this is a bug or a feature Usage = ResourceUsage.Staging }); DataBox tmp_db = context.MapSubresource(t2d_tmp, 0, MapMode.Read, MapFlags.None); // << 0 this t2d_tmp mip lvl context.UpdateSubresource(tmp_db, t2d_tiles, id); context.UnmapSubresource(t2d_tmp, 0); if (id == tiles_names.Count - 1) //if last textur in array ShaderResourceView tiles = new ShaderResourceView(device, t2d_tiles); [/CODE]
  2. [quote name='fkhan' timestamp='1279017484' post='4676344'] Make sure you are using .Net Framework 4.0 and not the client. Also instead of AnyCPU specify the explicit architecture i.e. x86 or x64 of the slimdx dll. [/quote] this is a bad idea, as described problem exists even at the moment, and you have described does not work: the inclusion in the WPF application SlimDX an error designer after the first compilation. This bug is also in the examples that come with SlimDX SDK [quote name='Garbled1' timestamp='1277871753' post='4670106'] Same issue here. Using AnyCPU configuration on an x64 system, targeting .NET 3.5.. [/quote] A working solution would be to completely abandon the inclusion SlimDX in WPF application. This agrees well with the exact same well-organized architecture of your game engine. I have a working solution for Wpf and SlimDX (currently only for Directx11) - if you need it where I will publish the realties
  3. [SlimDX] Access Texture data

    I have the same storage problem - you have found the correct code?
  4. [code] Device device = new Device( SharpDX.Direct3D10.DriverType.Hardware, DeviceCreationFlags.Debug); ImageLoadInformation li = new ImageLoadInformation() { CpuAccessFlags = CpuAccessFlags.Read, BindFlags = BindFlags.None, MipLevels = 1, Format = Format.R8G8B8A8_UNorm, MipFilter = FilterFlags.None, OptionFlags = ResourceOptionFlags.None, Usage = ResourceUsage.Staging }; Texture2D bitmap = Texture2D.FromFile<Texture2D>(device, @"N:\MI\bin\Maps\16x1.bmp", li); DataRectangle dr = bitmap.Map(0, MapMode.Read, MapFlags.None); DataStream ds = new DataStream(dr.DataPointer, dr.Pitch * bitmap.Description.Height, true, true); List<Byte4> b = new List<Byte4>(); while(ds.Position <ds.Length) b.Add( ds.Read<Byte4>());[/code]
  • Advertisement