当前位置: 首页>>代码示例>>C#>>正文


C# ContentRef.As方法代码示例

本文整理汇总了C#中ContentRef.As方法的典型用法代码示例。如果您正苦于以下问题:C# ContentRef.As方法的具体用法?C# ContentRef.As怎么用?C# ContentRef.As使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ContentRef的用法示例。


在下文中一共展示了ContentRef.As方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: IsUsingSrcFile

 public bool IsUsingSrcFile(ContentRef<Resource> r, string srcFile)
 {
     ContentRef<Font> f = r.As<Font>();
     return f != null && f.Res.CustomFamilyData != null && f.Res.SourcePath == srcFile;
 }
开发者ID:gitMaxim,项目名称:duality,代码行数:5,代码来源:FontFileImporter.cs

示例2: OnResourceModified

		private void OnResourceModified(ContentRef<Resource> resRef)
		{
			List<object> changedObj = null;

			// If a font has been modified, reload it and update all TextRenderers
			if (resRef.Is<Font>())
			{
				if (resRef.IsLoaded)
				{
					Font fnt = resRef.As<Font>().Res;
					if (fnt.NeedsReload)
						fnt.ReloadData();
				}

				foreach (Duality.Components.Renderers.TextRenderer r in Scene.Current.AllObjects.GetComponents<Duality.Components.Renderers.TextRenderer>())
				{
					r.Text.ApplySource();

					if (changedObj == null) changedObj = new List<object>();
					changedObj.Add(r);
				}
			}
			// If its a Pixmap, reload all associated Textures
			else if (resRef.Is<Pixmap>())
			{
				ContentRef<Pixmap> pixRef = resRef.As<Pixmap>();
				foreach (ContentRef<Texture> tex in ContentProvider.GetLoadedContent<Texture>())
				{
					if (!tex.IsAvailable) continue;
					if (tex.Res.BasePixmap == pixRef)
					{
						tex.Res.ReloadData();

						if (changedObj == null) changedObj = new List<object>();
						changedObj.Add(tex.Res);
					}
				}
			}
			// If its a Texture, update all associated RenderTargets
			else if (resRef.Is<Texture>())
			{
				if (resRef.IsLoaded)
				{
					Texture tex = resRef.As<Texture>().Res;
					if (tex.NeedsReload)
						tex.ReloadData();
				}

				ContentRef<Texture> texRef = resRef.As<Texture>();
				foreach (ContentRef<RenderTarget> rt in ContentProvider.GetLoadedContent<RenderTarget>())
				{
					if (!rt.IsAvailable) continue;
					if (rt.Res.Targets.Contains(texRef))
					{
						rt.Res.SetupOpenGLRes();

						if (changedObj == null) changedObj = new List<object>();
						changedObj.Add(rt.Res);
					}
				}
			}
			// If its some kind of shader, update all associated ShaderPrograms
			else if (resRef.Is<AbstractShader>())
			{
				ContentRef<FragmentShader> fragRef = resRef.As<FragmentShader>();
				ContentRef<VertexShader> vertRef = resRef.As<VertexShader>();
				foreach (ContentRef<ShaderProgram> sp in ContentProvider.GetLoadedContent<ShaderProgram>())
				{
					if (!sp.IsAvailable) continue;
					if (sp.Res.Fragment == fragRef ||
						sp.Res.Vertex == vertRef)
					{
						bool wasCompiled = sp.Res.Compiled;
						sp.Res.AttachShaders();
						if (wasCompiled) sp.Res.Compile();

						if (changedObj == null) changedObj = new List<object>();
						changedObj.Add(sp.Res);
					}
				}
			}

			// Notify a change that isn't critical regarding persistence (don't flag stuff unsaved)
			if (changedObj != null)
				DualityEditorApp.NotifyObjPropChanged(this, new ObjectSelection(changedObj as IEnumerable<object>), false);
		}
开发者ID:arajar,项目名称:duality,代码行数:86,代码来源:EditorBasePlugin.cs

示例3: IsUsingSrcFile

 public bool IsUsingSrcFile(ContentRef<Resource> r, string srcFile)
 {
     ContentRef<AbstractShader> s = r.As<AbstractShader>();
     return s != null && s.Res.SourcePath == srcFile;
 }
开发者ID:hbcameleon,项目名称:duality,代码行数:5,代码来源:ShaderFileImporter.cs

示例4: IsUsingSrcFile

 public bool IsUsingSrcFile(ContentRef<Resource> r, string srcFile)
 {
     ContentRef<Font> f = r.As<Font>();
     return f != null && f.Res.EmbeddedTrueTypeFont != null && f.Res.SourcePath == srcFile;
 }
开发者ID:ninja2003,项目名称:duality,代码行数:5,代码来源:FontFileImporter.cs

示例5: IsUsingSrcFile

 public bool IsUsingSrcFile(ContentRef<Resource> r, string srcFile)
 {
     ContentRef<Pixmap> p = r.As<Pixmap>();
     return p != null && p.Res.SourcePath == srcFile;
 }
开发者ID:ninja2003,项目名称:duality,代码行数:5,代码来源:PixmapFileImporter.cs

示例6: IsUsingSrcFile

 public bool IsUsingSrcFile(ContentRef<Resource> r, string srcFile)
 {
     ContentRef<AudioData> a = r.As<AudioData>();
     return a != null && a.Res.SourcePath == srcFile;
 }
开发者ID:ninja2003,项目名称:duality,代码行数:5,代码来源:AudioDataFileImporter.cs


注:本文中的ContentRef.As方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。