Ejemplo n.º 1
0
 /// <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);
 }
Ejemplo n.º 2
0
 public void Set(MCIndexBufferInfo r)
 {
     //type = r.type;
     format         = r.format;
     numIndex       = r.numIndex;
     numMaterial    = r.numMaterial;
     numVertices    = r.numVertices;
     primitiveCount = r.primitiveCount;
 }
Ejemplo n.º 3
0
        /// <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);
        }