Exemple #1
0
 /// <summary>
 /// Calls this on each OnGUI-cycle to draw all gui elements and handle inputs and clicks.
 /// </summary>
 public void Render(IRenderer renderer)
 {
     // draw needs to be called on every events, because unity handles inputs with multiple different events
     renderer.Begin();
     Draw(renderer);
     renderer.Finish();
 }
        void Update()
        {
            System.Diagnostics.Debug.WriteLine("Draw..");
            renderer.Begin();
            renderer.Clear();

            // render normal triangle
            renderer.UseShader(shaderProgram);
            renderer.UseVertexBuffer(vb1);
            renderer.DrawVertexBuffer(PrimitiveType.Triangles, 0, 3);

            // render textured triangle
            renderer.UseShader(shaderProgramTextured);
            renderer.UseVertexBuffer(vb2.VertexBuffer);
            //renderer.UseTexture(brickTexture); // Either use only one texture
            renderer.UseTextures(new ITexture2D[] { brickTexture, mossTexture }); // or multiple textures
            shaderProgramTextured.SetUniform(sampler1, 0);                        // the order of the textures is determined by setting the uniform to the right index of the texture
            shaderProgramTextured.SetUniform(sampler2, 1);
            renderer.DrawVertexBufferIndexed(PrimitiveType.Triangles, 6);

            // animate color
            uniformValue = uniformValue + 0.01f;
            uniformValue = uniformValue > 1.0f ? 1.0f : uniformValue;
            shaderProgramColored.SetUniform(multiplicator, uniformValue);

            // render colored triangle
            renderer.UseShader(shaderProgramColored);
            renderer.UseVertexBuffer(vb3.VertexBuffer);
            renderer.DrawVertexBufferIndexed(PrimitiveType.Triangles, 3);

            renderer.SwapBuffers();

            // end probably useless.. don't know if possible failures are due to wpf
            //renderer.End();
        }
Exemple #3
0
        public void Draw()
        {
            if (Points.Count != 3)
            {
                return;
            }

            IRenderer renderer = SceneManager.Current.Renderer;

            renderer.Disable("CullFace");
            renderer.Disable("Texture2D");
            renderer.Disable("Lighting");
            renderer.Disable("Light0");

            renderer.PolygonMode("FrontAndBack", "Line");

            renderer.Begin(PrimitiveType.Triangles);
            renderer.Color4(0f, 1.0f, 0f, 1.0f);

            renderer.Vertex3(Points[0]);
            renderer.Vertex3(Points[1]);
            renderer.Vertex3(Points[2]);
            renderer.End();

            renderer.Enable("CullFace");
            renderer.Enable("Texture2D");
            renderer.Enable("Lighting");
            renderer.Enable("Light0");
            renderer.FrontFace(SceneManager.Current.FrontFace);
        }
Exemple #4
0
        public void Render()
        {
            _renderer.Begin(_camera);

            _texture.Bind();
            _renderer.Submit(_shader, _vertexArray);

            _renderer.End();
        }
Exemple #5
0
        private void RenderEntities()
        {
            _renderer.ProjectionTransform = ProjectionTransform;
            _renderer.ViewTransform       = ViewTransform;

            var sw = Stopwatch.StartNew();

            _renderer.Begin();
            //_renderables.Sort((a, b) => b.Depth.CompareTo(a.Depth)); // todo optimize for infrequent Depth changing, IsDepthDirty -> move item
            foreach (var skeleton in _renderables.OrderByDescending(r => r.Depth))
            {
                skeleton.Draw(_renderer);
            }
            _renderer.End();

            DrawTime = sw.Elapsed.TotalMilliseconds;
        }
Exemple #6
0
        public void Draw()
        {
            IRenderer renderer = SceneManager.Current.Renderer;

            renderer.Disable("CullFace");
            renderer.Disable("Texture2D");
            renderer.Disable("Lighting");
            renderer.Disable("Light0");

            renderer.PolygonMode("FrontAndBack", "Line");

            renderer.Begin(PrimitiveType.Quads);
            renderer.Color4(0f, 1.0f, 0f, 1.0f);

            renderer.Vertex3(-1.0f, 0, -1.0f);
            renderer.Vertex3(0, 0, -1.0f);
            renderer.Vertex3(0, 0, 0);
            renderer.Vertex3(-1.0f, 0, 0);

            renderer.Vertex3(0, 0, -1.0f);
            renderer.Vertex3(1.0f, 0, -1.0f);
            renderer.Vertex3(1.0f, 0, 0);
            renderer.Vertex3(0, 0, 0);

            renderer.Vertex3(-1.0f, 0, 0);
            renderer.Vertex3(0, 0, 0);
            renderer.Vertex3(0, 0, 1.0f);
            renderer.Vertex3(-1.0f, 0, 1.0f);

            renderer.Vertex3(0, 0, 0);
            renderer.Vertex3(1.0f, 0, 0);
            renderer.Vertex3(1.0f, 0, 1.0f);
            renderer.Vertex3(0, 0, 1.0f);
            renderer.End();

            renderer.Enable("CullFace");
            renderer.Enable("Texture2D");
            renderer.Enable("Lighting");
            renderer.Enable("Light0");
            renderer.FrontFace(SceneManager.Current.FrontFace);
        }
Exemple #7
0
 public void Render()
 {
     renderer.Begin();
     DoRender(renderer);
     renderer.End();
 }
Exemple #8
0
 /// <summary>
 /// Begins the draw operation.
 /// </summary>
 public void Begin()
 {
     Renderer.Begin();
 }