/// <summary>
        /// テクスチャーを作成する
        /// </summary>
        /// <param name="name">一意になるテクスチャー名</param>
        /// <param name="w"></param>
        /// <param name="h"></param>
        /// <param name="tx"></param>
        /// <returns></returns>
        public static int Create(Application app, string name, int w, int h, out MCBaseTexture tx)
        {
            tx = null;
            MCPrintScreenTexture printTx = new MCPrintScreenTexture(app, name);

            Texture2DDescription desc;

            SimpleD2DescInit(w, h, out desc);

            Texture123DDesc d123 = new Texture123DDesc();

            d123.D2 = desc;

            if (printTx.CreateTexture2D(0, d123) != 0)
            {
                return(-1);
            }

            if (printTx.CreateShaderResourceView(0) != 0)
            {
                return(-1);
            }

            if (!app.ImageMgr.RegisterTexture(name, tx))
            {
                return(-1);
            }

            tx = printTx;
            return(0);
        }
Exemple #2
0
        public bool RegisterTexture(string name, MCBaseTexture texture)
        {
            // 存在しないやつを解放させるために呼ぶ
            if (TextureFind(name))
            {
                return(false);
            }

            m_nameTxIndex[name] = new WeakReference <MCBaseTexture>(texture);

            return(true);
        }
Exemple #3
0
        public bool GetTexture(string name, out MCBaseTexture tx)
        {
            tx = null;
            if (!m_nameTxIndex.ContainsKey(name))
            {
                return(false);
            }

            m_nameTxIndex[name].TryGetTarget(out tx);

            if (tx == null)
            {
                m_nameTxIndex.Remove(name);
                return(false);
            }

            return(true);
        }