本文整理汇总了C#中ContentManager.RegisterSerializer方法的典型用法代码示例。如果您正苦于以下问题:C# ContentManager.RegisterSerializer方法的具体用法?C# ContentManager.RegisterSerializer怎么用?C# ContentManager.RegisterSerializer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ContentManager
的用法示例。
在下文中一共展示了ContentManager.RegisterSerializer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static void Main(string[] args)
{
EngineContext.Setup();
EngineContext.RenderSystem = new DefaultRenderSystem();
EngineContext.RenderSystem.Init(EngineContext.RenderContext);
var effect = EngineContext.RenderContext.BuildEffect().Using<RenderTargetFeature>().Using<TransformationFeature>().Using<TextureFeature>().Compile();
var vfs = new VirtualFileStorage();
vfs.MountFileSystem("/global_data", "..\\deps\\data\\");
vfs.MountFileSystem("/global_data2", "..\\data\\");
var packageVfs = vfs.MountPackage("/testpackage", "/global_data/factory3.dat").Result;
var contentManager = new ContentManager(vfs, packageVfs);
contentManager.RegisterSerializer(new SimpleContentSerializer<MeshData>());
contentManager.RegisterSerializer(new TextureSerializer());
contentManager.RegisterSerializer(new GpuTextureSerializer(EngineContext.RenderContext.GraphicsDevice));
var meshData = contentManager.Load<MeshData>("/testpackage/guid/" + packageVfs.Objects[2].Header.ObjectId.Guid);
var effectMesh = new EffectMesh(effect, meshData);
//effect.InstantiateMesh(effectMesh);
//effect.UpdateMeshData(effectMesh, meshData);
//effectMesh.AddRenderQueue();
var projectionMatrix = Matrix.PerspectiveFovLH((float)Math.PI * 0.5f, 1024.0f / 768.0f, 1.0f, 4000.0f);
EngineContext.RenderContext.ParameterGroups.Get(TransformationFeature.TransformationGroup).SetAs(TransformationFeature.Projection, projectionMatrix);
var factoryTexture = (ITexture2D)contentManager.Load<ITexture>("/global_data2/media/factory.png");
effectMesh.Parameters.Set(TextureFeature.Texture, factoryTexture);
var world = Matrix.Scaling(0.1f) * Matrix.Translation(new Vector3(-30.0f, -30.0f, 0.0f));
effectMesh.Parameters.Set(TransformationFeature.World, world);
var depth = EngineContext.RenderContext.GraphicsDevice.DepthStencilBuffer.New(DepthFormat.Depth32, EngineContext.RenderContext.Width, EngineContext.RenderContext.Height);
EngineContext.RenderContext.ParameterGroups.GetGroup(RenderTargetFeature.Group).Set(RenderTargetFeature.RenderTarget, EngineContext.RenderContext.RenderTarget);
EngineContext.RenderContext.ParameterGroups.GetGroup(RenderTargetFeature.Group).Set(RenderTargetFeature.DepthStencil, depth);
float time = 0.0f;
while (true)
{
var eyeVector = new Vector4(-800.0f * (float)Math.Cos(time), 800.0f * (float)Math.Sin(time), 500.0f, 1.0f);
time += 0.0001f;
var viewMatrix = Matrix.LookAtLH(new Vector3(eyeVector.X, eyeVector.Y, eyeVector.Z), new Vector3(0.0f, 0.0f, 50.0f), new Vector3(0.0f, 0.0f, 1.0f));
EngineContext.RenderContext.ParameterGroups.Get(TransformationFeature.TransformationGroup).SetAs(TransformationFeature.View, viewMatrix);
Scheduler.Step();
WinFormsHelper.UpdateWindow();
EngineContext.Render();
if (Win32Interop._kbhit() != 0)
{
var key = Console.ReadKey(true).KeyChar;
switch (key)
{
default:
break;
}
if (key == 'q')
break;
}
}
EngineContext.Stop();
}