import wx
import wx.lib.pubsub.setupkwargs

from OpenGL.GL import *
from OpenGL.GLUT import *

from glutton import canvas, presets


class TestCanvas(canvas.Canvas, presets.CAD2D):
    def init_context(self):
        light_diffuse = [1.0, 1.0, 1.0, 1.0]
        light_position = [1.0, 1.0, 1.0, 0.0]

        glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse)
        glLightfv(GL_LIGHT0, GL_POSITION, light_position)

        glEnable(GL_LIGHTING)
        glEnable(GL_LIGHT0)
        glEnable(GL_DEPTH_TEST)
        glClearColor(0.0, 0.0, 0.0, 1.0)
        glClearDepth(1.0)

    def render_scene(self):
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
        glPushMatrix()
        color = [1.0,0.,0.,1.]
        glMaterialfv(GL_FRONT,GL_DIFFUSE,color)
        glutSolidSphere(2,20,20)
        glPopMatrix()


app = wx.App(False)
app.TopWindow = f = wx.Frame(None)
f.canvas = TestCanvas(f)
f.Show()
app.MainLoop()
