Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public MainPage()
- {
- InitializeComponent();
- m_timeCounter = new Timer(16);
- m_timeCounter.Elapsed += FrameTimeElapsed;
- m_timeCounter.Start();
- m_ogl = new OpenGLView();
- m_ogl.HeightRequest = Forms.Context.Resources.DisplayMetrics.HeightPixels;
- m_ogl.WidthRequest = Forms.Context.Resources.DisplayMetrics.WidthPixels;
- m_ogl.HasRenderLoop = true;
- m_ogl.OnDisplay = (r) =>
- {
- if (!m_init)
- {
- InitOpengl((int)m_ogl.HeightRequest, (int)m_ogl.WidthRequest);
- m_init = true;
- }
- GL.ClearColor(System.Drawing.Color.CornflowerBlue);
- GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
- GL.Viewport(0, 0, m_vpWidth, m_vpHeight);
- float ratio = (float)m_vpWidth / m_vpHeight;
- m_projMatrix = Matrix4.CreateOrthographic(-ratio, ratio, -1, 1);
- m_viewMatrix = Matrix4.LookAt(-Vector3.UnitZ, Vector3.Zero, Vector3.UnitY);
- m_mvpMatrix = m_projMatrix * m_viewMatrix;
- Vector4 value = Vector4.Transform(new Vector4(0, 0, 0, 1), m_mvpMatrix);
- foreach (ShaderProgram shader in m_shaderPrograms)
- {
- GL.UseProgram(shader.ShaderProgramId);
- shader.CallAttributeLocationDataFuncs();
- shader.CallUniformLocationDataFuncs();
- shader.ShaderUseFunc();
- GL.Finish();
- }
- };
- StackLayout stackLayout = Content as StackLayout;
- stackLayout.Children.Add(m_ogl);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement