コード例 #1
0
    void DrawOpenGL(int choice)
    {
        Debug.Log($"DrawOpenGL({choice})");
        /* Loop until the user closes the window */
        {
            switch (choice)
            {
            case 1:
                GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
                GL.glBegin(GL.GL_TRIANGLES);
//                    GL.glColor3f(r,g,b);
                float rnd = 0.5f;
                GL.glVertex2f(-rnd, -rnd);
                GL.glVertex2f(0f, rnd);
                GL.glVertex2f(rnd, -rnd);
                GL.glEnd();
                break;

            case 2:
                GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
                //GL.glfwGetFramebufferSize(_windowHandle, &width, &height);
                float ratio = width / (float)height;
                // glViewport(0, 0, width, height);
                GL.glMatrixMode(GL.GL_PROJECTION);
                GL.glLoadIdentity();
                GL.glOrtho(-ratio, ratio, -1f, 1f, 1f, -1f);
                GL.glMatrixMode(GL.GL_MODELVIEW);
                GL.glLoadIdentity();
                GL.glRotatef((float)GL.glGetTime() * 50f, 0f, 0f, 1f);
                GL.glBegin(GL.GL_TRIANGLES);
                GL.glColor3f(1f, 0f, 0f);
                GL.glVertex3f(-0.6f, -0.4f, 0f);
                GL.glColor3f(0f, 1f, 0f);
                GL.glVertex3f(0.6f, -0.4f, 0f);
                GL.glColor3f(0f, 0f, 1f);
                GL.glVertex3f(0f, 0.6f, 0f);
                GL.glEnd();
                break;
            }

            //GL.glFlush();
        }
    }
コード例 #2
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey(KeyCode.D))
        {
            float r = Random.Range(0f, 1f);
            float g = Random.Range(0f, 1f);
            float b = Random.Range(0f, 1f);

            OpenGLDriver.SwapBuffers(() => DrawOpenGL(1));
        }

        if (Input.GetKey(KeyCode.E))
        {
            OpenGLDriver.SwapBuffers(() => DrawOpenGL(2));
        }
        uint currentFrameBuffer = GL.GetCurrentFrameBuffer();
        var  texture            = randomTexture2D(10, 10);

        _rendererComponent.material.SetTexture("_EmissionMap", texture);
    }