コード例 #1
0
ファイル: ImgTexture.cs プロジェクト: nakdai/izanagi
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="master">親のマスタデータ</param>
        /// <param name="body">ネイティブで生成された本体</param>
        internal ImgTexture(ImgMaster master, IntPtr body)
        {
            this.parent = master;
            this.texBody = body;

            if (this.texBody != IntPtr.Zero)
            {
                this.ID = ImgMaster.ImgObjID++;

                // Get number of images in texture.
                var num = ImageLibDllProxy.GetImageNumInTexture(texBody);

                // NOTE
                // どのイメージでもミップマップ数は同じ
                // テクスチャが複数のイメージを持つ場合はキューブマップのときのみで
                // キューブマップの場合はすべてが同じミップマップ数になる
                var mipmap = ImageLibDllProxy.GetMipMapNumInTexture(texBody);

                // ImageImageのキャッシュ用リストを作成
                for (uint i = 0; i < num; i++)
                {
                    var list = new List<ImgImage>();

                    for (uint m = 0; m < mipmap; m++)
                    {
                        var data = ImageLibDllProxy.GetImageInTexture(texBody, i, m);
                        ImgImage img = new ImgImage(this, data);
                        list.Add(img);
                    }

                    this.imageList.Add(list);
                }
            }
        }
コード例 #2
0
ファイル: ImgTexture.cs プロジェクト: nakdai/izanagi
 internal void RemoveImage(ImgImage img)
 {
     foreach (var list in this.imageList)
     {
         if (list.Remove(img))
         {
             // TODO
             return;
         }
     }
 }