68 lines
1.7 KiB
Plaintext
68 lines
1.7 KiB
Plaintext
game
|
|
basically handles the game logic and delegates audio/video to respective management tools
|
|
|
|
track current state and updates state
|
|
calls renderers to draw the scene to framebuffer(s)
|
|
calls a mixer to play audio for a scene
|
|
|
|
key functions:
|
|
render()
|
|
update()
|
|
|
|
holds any scenes required for gameplay
|
|
holds window for game to be drawn in
|
|
|
|
|
|
scene
|
|
basically a central repository for raw data in a scene
|
|
|
|
holds cameras that exist in a given scene
|
|
holds objects that exist in a given scene
|
|
holds textures that exists for a given scene
|
|
holds audio that exists for a given scene
|
|
|
|
renderer
|
|
basically takes a scene and draws it a specific way to a framebuffer
|
|
|
|
key functions:
|
|
set_vpmatrix(mat4&)
|
|
set up view-projection matrix for use in rendering
|
|
render(scene&)
|
|
draw the given scene the this renderer's framebuffer
|
|
|
|
|
|
vertex
|
|
basically describes a vertex
|
|
holds position
|
|
holds texture coordinates
|
|
holds vertex color
|
|
holds normals
|
|
|
|
mesh
|
|
basically holds vertex data for a given shape
|
|
holds an array of vertices that describe a shape to draw
|
|
|
|
key functions:
|
|
render(shader&)
|
|
draw this mesh onto the currently bound framebuffer using the given shader
|
|
|
|
model
|
|
basically handles a collection of meshes that constitute a single entity
|
|
hold an array of meshes that describe the composition of a complex model
|
|
|
|
key functions:
|
|
render(shader&)
|
|
draw this model onto the currently bound framebuffer using the given shader
|
|
|
|
instance
|
|
basically holds handles to a mesh/model/any other needed data for use by multiple objects
|
|
|
|
renderable
|
|
basically any type with a render(shader_program&) function
|
|
hold an instance object reffing to a model
|
|
hold a model matrix
|
|
|
|
square
|
|
is a renderable that specifically references a square model
|
|
|