/// <summary> /// This gets called when the TizenGameApplication has been created. /// </summary> protected override void OnCreate() { Window.RenderFrame += OnRenderFrame; Window.KeyDown += OnKeyEvent; //Mouse movement event handling Window.MouseMove += (sender, e) => { if (e.Mouse[MouseButton.Left]) { float x = (float)(e.XDelta); float y = (float)(e.YDelta); MatrixState.Rotate(x, 0, 10f); Draw(); } }; InitVertexData(); GetProgram(); aPositionLocation = GL.GetAttribLocation(program, "aPosition"); uMatrixLocation = GL.GetUniformLocation(program, "uMVPMatrix"); InitTexture(); GL.VertexAttribPointer(aPositionLocation, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), vertices); GL.VertexAttribPointer(aTextureCoordinates, 2, VertexAttribPointerType.Float, false, 2 * sizeof(float), textures); GL.EnableVertexAttribArray(aPositionLocation); GL.EnableVertexAttribArray(aTextureCoordinates); GL.ClearColor(Color4.Gray); sPlayer.SetSource(DirectoryInfo.Resource + "1.m4a"); sPlayer.ToPlay(true); }
/// <summary> /// To draw /// </summary> public void Draw() { umatrix = MatrixState.Get360Matrix(Window.Height, Window.Width); GL.UniformMatrix4(uMatrixLocation, false, ref umatrix); GL.DrawArrays(PrimitiveType.Triangles, 0, vCount); GL.Finish(); Window.SwapBuffers(); }
/// <summary> /// This well be called when key pressed down /// </summary> /// <param name="sender">Key instance</param> /// <param name="e">Key's args</param> public void OnKeyEvent(object sender, KeyboardKeyEventArgs e) { //right key pressed, the scene will turn right if (e.Key == Key.Right) { MatrixState.Rotate(-60f, 0f, 360f); } //Left key pressed, the scene will turn Left else if (e.Key == Key.Left) { MatrixState.Rotate(60f, 0f, 360f); } //return key pressed, the App will exit else if (e.Key == Key.Escape) { Exit(); } Draw(); }