Ejemplo n.º 1
0
        public void Update(float deltaTime)
        {
            //pump message
            PumpMessage();

            SenderEvent(new UpdateEvent(DateTime.Now, deltaTime));
            SenderEvent(new RenderEvent(DateTime.Now, deltaTime));

            //process the event
            while (EventCount != 0)
            {
                switch (GetEvent(true))
                {
                case UpdateEvent update: OnUpdateEvent?.Invoke(this, update); break;

                case KeyBoardEvent keyBoard: OnKeyBoardEvent?.Invoke(this, keyBoard); break;

                case MouseClickEvent mouseClick: OnMouseClickEvent?.Invoke(this, mouseClick); break;

                case MouseWheelEvent mouseWheel: OnMouseWhellEvent?.Invoke(this, mouseWheel); break;

                case MouseMoveEvent mouseMove: OnMouseMoveEvent?.Invoke(this, mouseMove); break;

                case SizeChangeEvent sizeChange: OnSizeChangeEvent?.Invoke(this, sizeChange); break;
                }
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            QuadEngine.QuadEngine.CreateQuadDevice(out quadDevice);
            quadDevice.CreateWindow(out quadWindow);
            quadWindow.SetCaption("QuadEngine - Demo03 - Primitives");
            quadWindow.SetSize(800, 600);
            mouseMoveEvent = (OnMouseMoveEvent)OnMouseMove;
            quadWindow.SetOnMouseMove(Marshal.GetFunctionPointerForDelegate(mouseMoveEvent));

            quadDevice.CreateRender(out quadRender);
            quadRender.Initialize((IntPtr)(int)(uint)quadWindow.GetHandle(), 800, 600, false);

            quadDevice.CreateTimer(out quadTimer);

            timer = (TimerProcedure)OnTimer;
            quadTimer.SetCallBack(Marshal.GetFunctionPointerForDelegate(timer));
            quadTimer.SetInterval(16);
            quadTimer.SetState(true);

            quadWindow.Start();
        }