Exemplo n.º 1
0
 public Renderer(RenderingApi renderingApi)
 {
     _rendererImplementation = renderingApi switch
     {
         RenderingApi.OpenGl => new GlRenderer(),
         _ => throw new ArgumentOutOfRangeException(nameof(renderingApi), renderingApi, null)
     };
 }
Exemplo n.º 2
0
        private RenderingApi SetupRenderingApi()
        {
            var serviceProvider  = _server.GetRequiredService <IServiceProvider>();
            var viewEngine       = _server.GetRequiredService <IRazorViewEngine>();
            var tempDataProvider = _server.GetRequiredService <ITempDataProvider>();

            var viewRenderer   = new ViewRender(viewEngine, tempDataProvider, serviceProvider);
            var hostingOptions = new HostingOptions();
            var renderingApi   = new RenderingApi(hostingOptions, viewRenderer);

            return(renderingApi);
        }
Exemplo n.º 3
0
        private void DrawPending()
        {
            if (PendingIndices.Count == 0)
            {
                return;
            }

            UiShader.Use();
            UiShader.SetMatrix4("u_Projection", Matrix4.CreateOrthographic(Window.Size.X, Window.Size.Y, 0.0001f, 1000.0f));

            var samplerData = PrepareSamplerIndices();

            UiShader.SetInt("u_Textures[0]", samplerData);

            Vao.Bind();
            Vao.UpdateIndices(PendingIndices.ToArray());
            Vao.UpdateVertices(PendingVertices.ToArray());

            Vao.Draw(UiShader, BeginMode.Triangles);
            RenderingApi.ReportDrawCall();

            ClearPendingBuffers();
        }
Exemplo n.º 4
0
 public AppData(PlatformApi platform, RenderingApi rendering)
 {
     Window   = new Window(platform);
     Renderer = new Renderer(rendering);
 }