bf6352369b
Resize the viewport and recompute the projection when needed
2016-04-04 22:46:45 +02:00
cdfd5f6bb5
Fix job unit tests
2016-04-04 22:46:45 +02:00
383e156c91
Add macros to simplify async evaluation
2015-12-27 17:09:06 +01:00
7e9ed2c1ac
Add the main loop and remove the now useless startup and debug files
2015-12-27 17:09:06 +01:00
994f7c33c4
Use input package as a module
2015-12-27 17:09:06 +01:00
03b2fa65fb
Don't crash render thread even if there is no world
2015-12-27 17:09:06 +01:00
a2b107f53f
Add move and rotate functions to manipulate objects
2015-12-27 17:09:06 +01:00
54c1efc5b1
Fix ctype-to-gltype
2015-12-27 17:09:06 +01:00
de99347555
Add a compute-fps function in render module
2015-12-27 17:09:06 +01:00
326fe654c2
Add a priority parameter to defmodule
2015-12-27 17:09:06 +01:00
4985c8a179
Fix maths module's vec* macros and mperspective
2015-12-27 17:09:06 +01:00
0a5d24fe3e
Use the renderer to show some meshes
...
Create some classes to store the mesh data streams and adapt the import
file accordingly.
Add object and camera classes to be manipulated by the game.
Render the meshes in the graph scene using only position vertex stream
and an unicolor shader.
Also add some models and a startup package to ease testing.
2015-12-27 17:09:06 +01:00
ae6ce45c53
Move around some defgeneric to be used in various situations
2015-12-27 17:09:06 +01:00
70c51eb04d
Rename some maths interfaces
2015-12-27 17:09:05 +01:00
6d3a0e19e7
Setup the opengl context on a separate thread
...
This requires all opengl functions to be executed on this separate
thread.
2015-12-27 17:09:05 +01:00
99e97f7b71
Fix the import of the transform attribute in the scene graph
2015-12-27 17:09:05 +01:00
b0f45911ab
Use defparameter to declare shader variables
2015-12-27 17:09:05 +01:00
a3cc27237b
Add accessors for vect and matrix classes to the underlying data
2015-12-27 17:09:05 +01:00
5e4b3241aa
Define generics with common names to be used by several different classes
2015-12-27 17:09:05 +01:00
e9be960167
Fix the job module interface to make use of specialized threads
2015-12-27 17:09:05 +01:00
d6af14d552
Move clock utility to time.lisp
2015-12-27 17:09:05 +01:00
53de3d0cf6
Wrap glop functions in a viewport file
...
regroup opengl version and window creation and event polling in the
viewport file.
To further clean up the files layout, move input.lisp to engine folder
gl-utils is now used for some simple macros
2015-12-27 17:09:05 +01:00
073bec3e64
Move the shader folder to the root folder
2015-12-27 17:09:05 +01:00
ab0698bef1
Add a way to import graphic assets from various sources
2015-12-27 17:09:05 +01:00
4e974ad8a2
Add a resource module
...
Resources are loaded as binary or lisp files. A streamed resource is
also planned but not yet implemented.
Resources are shared and loading happens asynchronically,
powered by promises.
Resources are used through proxies that shares a weak pointer.
When a proxy is gc'd, a finalizer is triggered using trivial-garbage to
release the resource.
2015-12-27 17:09:05 +01:00
7e6f6f699c
Make a job-utils package for test system
...
This lets us dynamically create new threads to test features in
multithreaded environment.
2015-12-27 17:09:05 +01:00
0f0ed3a879
Introduce promises into the job module
2015-12-27 17:09:05 +01:00
0c4b744e75
Remove aif and awhen
...
Hopefully we won't be using anaphoric macros in this project
2015-12-27 17:09:05 +01:00
c4b1680d2f
Adapt unit test framework for inferred-system
...
Add unit tests for jobs
2015-12-27 17:09:05 +01:00
f31a433854
Rewrite job system using clos
2015-12-27 17:09:05 +01:00
7c3a9a01c0
Fix unary v- function which didn't do anything
2015-12-27 17:09:05 +01:00
00fa5fab7a
Fix the typed returned by quaternion constructor
2015-12-27 17:09:05 +01:00
0aef2509d5
fix type spec in maths module
2015-12-27 17:09:05 +01:00
fc69969099
Refactor packages layout using inferred-packages-system
2015-12-27 17:09:05 +01:00
dbc009d466
Rewrite maths library's implementation and interface
...
Make use of CLOS for vector and matrix types
Rewrite matrix implementation as column major
Verify the computations in rewritten unit tests
2015-05-25 23:20:17 +02:00
9b69dee238
Fix unit test for the new defshader system
2015-05-05 18:31:50 +02:00
c910a4ce1f
Implement a new shader definition system
...
Use a Domain Specific Language to define shaders in common-lisp syntax.
The code is then walked and compiled into glsl expressions and stored in
easy to use structures.
At the program initialization, the shader programs are compiled into opengl.
Dependencies are also kept, so that if a shader is redefined, the
corresponding program will be recompiled into opengl.
The old glsl-compiler is deleted as it is now rendered useless.
The render and mesh code are fixed according to changes in the interface.
2015-05-05 14:07:32 +02:00
e73a96de44
fixup command-line-option
2015-05-05 13:28:18 +02:00
2fda251cd7
fixup loop-with-progress
2015-05-05 13:27:41 +02:00
7a8f3117ed
Add a way to check if opengl is initialized or not
2015-05-03 23:38:19 +02:00
fa14b3dae4
Properly parse numbers from the command line or in version strings
2015-04-27 22:19:28 +02:00
7ba21e011c
Add a macro to display a progress indicator to looping process
2015-04-24 14:30:41 +02:00
a26b19be1b
Enhance the gl-assert macro to include an implicit progn
2015-04-21 17:19:35 +02:00
8b96f8166f
Add glsl version directive to the shader according to the supported version
2015-04-04 23:45:23 +02:00
a7fd8e4842
Handle the shader lambda-list (preamble)
2015-04-04 23:42:56 +02:00
c66e3c62e8
Transform common-lisp symbols into glsl compliant variable names
2015-04-04 23:38:01 +02:00
5cc428df88
Fix gl version retrieval and get glsl version at init
2015-04-04 23:32:34 +02:00
1c1862dd6d
Handle more operations and wrap in main function
...
Add handlers for infix operations (+ - * / %) and assignments.
Wrap the resulting code in a main function.
Prepare for the lambda-list processing
2015-03-29 19:02:59 +02:00
f8c1db2192
Add helpers for let handler
2015-03-25 23:25:25 +01:00
1a94093619
Enhance output layout
2015-03-25 23:25:00 +01:00