public async System.Threading.Tasks.Task <bool> Init(Graphics.CGfxMaterialInstance material, float halfWidth = 0.1F) { var rc = CEngine.Instance.RenderContext; Material = material; GeomMesh = new Graphics.Mesh.CGfxMeshPrimitives(); GeomMesh.Init(rc, null, 1); CDrawPrimitiveDesc dpDesc = new CDrawPrimitiveDesc(); dpDesc.SetDefault(); dpDesc.StartIndex = 0xFFFFFFFF; GeomMesh.PushAtomLOD(0, ref dpDesc); var Mesh = new Graphics.Mesh.CGfxMesh(); Mesh.Init(rc, null, GeomMesh); var img = new Graphics.Mesh.CGfxImage2D(); Mesh.Tag = img; UpdateGeomMesh(rc, halfWidth); GraphActor = GamePlay.Actor.GActor.NewMeshActorDirect(Mesh); var meshComp = GraphActor.GetComponent <GamePlay.Component.GMeshComponent>(); await meshComp.SetMaterialInstanceAsync(rc, 0, material, null); //await meshComp.SetMaterial(rc, 0, material, CEngine.Instance.PrebuildPassData.Image2DShadingEnvs, false, true); return(true); }
public void DrawImage(CCommandList cmd, Graphics.View.CGfxScreenView view, Graphics.Mesh.CGfxImage2D image, int zOrder) { var pass = image.GetPass(); pass.ViewPort = view.Viewport; pass.BindCBuffer(pass.Effect.ShaderProgram, pass.Effect.CacheData.CBID_View, view.ScreenViewCB); pass.ShadingEnv.BindResources(image.Mesh, pass); cmd.PushPass(pass); }