Completed
Push — master ( f1f8b6...be0bb5 )
by
unknown
01:01
created

framework.game.GameManager   A

Complexity

Total Complexity 14

Size/Duplication

Total Lines 74
Duplicated Lines 0 %
Metric Value
dl 0
loc 74
rs 10
wmc 14

9 Methods

Rating   Name   Duplication   Size   Complexity  
A exit() 0 2 1
A render() 0 4 1
A resize() 0 4 1
A update() 0 2 1
A process_event() 0 6 4
A gl_init() 0 10 1
A run() 0 6 2
A do_run() 0 10 2
A __init__() 0 21 1
1
from ed2d import window
2
from ed2d import context
3
from ed2d import sysevents
4
from ed2d.events import Events
5
from ed2d import timing
6
from ed2d.opengl import gl
7
from ed2d import scenegraph
8
9
class GameManager(object):
10
    def __init__(self):
11
12
        self.width = 800
13
        self.height = 600
14
        self.fullscreen = False
15
        self.title = "SceneGraph"
16
        self.running = False
17
18
        self.fpsTimer = timing.FpsCounter()
19
        self.fpsEstimate = 0
20
21
        self.window = window.Window(self.title, self.width,
22
                self.height, window.WindowedMode)
23
24
        self.sysEvents = sysevents.SystemEvents()
25
        self.context = context.Context(3, 3, 2)
26
        self.context.window = self.window
27
        Events.add_listener(self.process_event)
28
29
        gl.init()
30
        self.gl_init()
31
32
    def gl_init(self):
33
        '''Init opengl-using objects.'''
34
        print('MOO')
35
        self.sg = scenegraph.SceneGraph()
36
        listNode = self.sg.establish([])
37
        print(listNode)
38
        stringNode = self.sg.establish('')
39
        self.sg.establish({}, parent=stringNode)
40
41
        print(self.sg.root.treeChildren)
42
43
    def resize(self, width, height):
44
        self.width = width
45
        self.height = height
46
        gl.glViewport(0, 0, self.width, self.height)
47
48
    def process_event(self, event, data):
49
        if event == 'quit' or event == 'window_close':
50
            self.running = False
51
        elif event == 'resize':
52
            winID, x, y = data
53
            self.resize(x, y)
54
55
    def render(self):
56
        gl.glClearColor(0.5, 0.5, 0.5, 1.0)
57
        gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
58
        self.sg.render()
59
60
    def update(self):
61
        pass
62
63
    def exit(self):
64
        pass
65
66
    def do_run(self):
67
        ''' Process a single loop '''
68
        self.sysEvents.process()
69
        self.update()
70
        self.render()
71
        self.window.flip()
72
        self.fpsTimer.tick()
73
        if self.fpsTimer.fpsTime >= 2000:
74
            self.fpsEstimate = self.fpsTimer.get_fps()
75
            print("{:.2f} fps".format(self.fpsEstimate))
76
77
    def run(self):
78
        ''' Called from launcher doesnt exit until the game is quit '''
79
        self.running = True
80
        while self.running:
81
            self.do_run()
82
        self.exit()
83