public void Init() { GL.ClearColor(Color4.LightSkyBlue); GL.Enable(EnableCap.DepthTest); GL.Enable(EnableCap.Texture2D); GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha); GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest); world = new EcsWorld(); systems = new EcsSystems(world) .Add(new RenderSystem()) .Add(new CameraSystem()) .Inject(window) .Inject(this); systems.Init(); EcsEntity playerEntity = world.NewEntity(); playerEntity.Replace(new CameraComponent(new Vector3(0, 5, 5), -90.0f, -45.0f, 60)); EcsEntity groundEntity = world.NewEntity(); groundEntity.Replace(new TransformationComponent() { Position = new Vector3(0, 0, 0), Rotation = new Quaternion(0, 0, 0), Scale = new Vector3(1, 1, 1) }); groundEntity.Replace(new RenderComponent() { geometry = ResourceManager.GetResource <Geometry>("GROUND_GEOMETRY"), shader = ResourceManager.GetResource <Shader>("GROUND_SHADER"), diffuse = ResourceManager.GetResource <Texture>("GROUND_TEXTURE") }); MainMenu = new MainMenu(window); window.Resize += (e) => MainMenu.Resize(e.Width, e.Height); MainMenu.OnButtonClick += HandleMainMenuButton_Click; }
public void Dispose() { ResourceManager.Free(); window.Dispose(); }