/// <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); } } }
internal void RemoveImage(ImgImage img) { foreach (var list in this.imageList) { if (list.Remove(img)) { // TODO return; } } }