/// <summary> /// 指定したインデックス番号のインデックスバッファ MCIndexBufferInfoの情報を取得する。 /// </summary> /// <param name="no">インデックス番号</param> /// <param name="info">成功した場合は、true を返す。 引数が無効な場合は、false を返す。 </param> /// <returns></returns> public bool GetBufferInfo(int no, out MCIndexBufferInfo info) { if (GetNumIndexBuffes() <= no) { throw new Exception("GetNumIndexBuffes範囲エラー"); } info = m_vaIndexBuffer[no].info; return(true); }
public void Set(MCIndexBufferInfo r) { //type = r.type; format = r.format; numIndex = r.numIndex; numMaterial = r.numMaterial; numVertices = r.numVertices; primitiveCount = r.primitiveCount; }
/// <summary> /// インデックス バッファを作成する。 /// </summary> /// <param name="pD3DDevice"></param> /// <param name="bffInfo"></param> /// <returns></returns> int CreateIndexBuffer( SharpDX.Direct3D11.Device dev, MCIndexBufferInfo bffInfo) { m_device = dev; MCIndexBufferEX IndexBufferTmp = new MCIndexBufferEX(); IndexBufferTmp.info = new MCIndexBufferInfo(); IndexBufferTmp.info.Set(bffInfo); int nByte; if (bffInfo.format == Format.R16_UInt) { nByte = 2; } else { nByte = 4; bffInfo.format = Format.R32_UInt; } BufferDescription bd = new BufferDescription(); bd.Usage = ResourceUsage.Dynamic;//D3D11_USAGE_DEFAULT; bd.SizeInBytes = nByte * bffInfo.numIndex; bd.BindFlags = BindFlags.IndexBuffer; bd.CpuAccessFlags = CpuAccessFlags.Write;// | D3D11_CPU_ACCESS_READ; IndexBufferTmp.indexBuffer = new SharpDX.Direct3D11.Buffer(dev, bd); m_vaIndexBuffer.Add(IndexBufferTmp); return(0); }