/// <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); }
public bool RegisterTexture(string name, MCBaseTexture texture) { // 存在しないやつを解放させるために呼ぶ if (TextureFind(name)) { return(false); } m_nameTxIndex[name] = new WeakReference <MCBaseTexture>(texture); return(true); }
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); }