1a94093619
Enhance output layout
2015-03-25 23:25:00 +01:00
f12a8076d0
Add a simple handler for `let'
2015-03-25 17:37:27 +01:00
2c0f5f1904
Add a starting block for a glsl dsl compiler
2015-03-22 22:40:18 +01:00
906d165556
Enhance the genericity of the walker
2015-03-22 22:39:39 +01:00
927aa91f93
Fix utf-8 encoding
2015-03-22 22:30:55 +01:00
64a7d83e80
Add the first part of a code walker for the shader dsl
2015-03-20 16:44:37 +01:00
d8df41dbe4
Refactor the game module and rethink the way to import symbols
...
From now on, import symbols from other packages when it makes sense.
2014-11-14 21:53:24 +09:00
9faa777972
Rewrite modules functions as macro
...
This let us recompile initialize/finalize/update functions during
runtime without having to register them once again.
2014-11-14 21:45:54 +09:00
6b2c2df3bf
Add some simple objects to be rendered
...
A cube and a triangle
Make use of the input system to move the camera.
2014-11-10 16:54:03 +09:00
f51bb6d4cf
Add an input system inspired by emacs' keymaps
...
Use glop to poll the events each frame and pass any input event to the
input system.
Provide functions like `global-set-key' or `global-set-motion' to setup
function to be triggered when a key is pressed or when the mouse is moved.
2014-11-10 16:54:03 +09:00
764baddb3c
fix the render module to use the scene graph defined in game module
...
Modify the mesh class to use a foreign array for the vertex and index
streams to pass to opengl, but the memory is not yet properly managed.
Add a function to render each node in the scene graph when it finds a
mesh component.
2014-11-10 16:54:02 +09:00
d4fd7ecc55
Add a game module
...
The game module contains for now a internal loop to allow the game to
always update at 16ms and a simple scene graph to place object in a 3d
world. A camera class is defined to be able to view the world.
2014-11-10 16:54:02 +09:00
75f40f6be8
cl-test-more has been renamed prove
2014-11-09 12:17:24 +09:00
75aae52cfe
Include alexandria library in the project
...
Discard useless once-only macro and replace it by alexandria's implementation
2014-11-04 16:58:47 +09:00
eaedaf8a35
add a function to transpose a matrix (suboptimal)
2014-11-02 16:53:36 +09:00
21f45091d7
fix thread creation and deletion
2014-11-02 16:53:36 +09:00
b9223e2e90
fix a compile warning
2014-11-02 16:53:36 +09:00
a8d4f11193
fix perspective matrix computation
2014-11-02 16:53:36 +09:00
3de90e7618
Add opengl's one time settings in the initialize process
2014-11-02 16:53:36 +09:00
891643c414
Add a poll-events function to be used in the main-loop
2014-11-02 16:53:36 +09:00
cd62df4c63
make utils:group second argument optional
...
This function is often used to group together 2 symbols so make it the
default behavior
2014-11-02 16:53:36 +09:00
1eea9dbc73
rewrite mesh.lisp to better handle mesh data
...
The data layout is now fixed and each keyword is associated to a
function to construct the data structure with the code
add the file to the project
2014-11-02 16:53:36 +09:00
b5f5641d05
delete useless material.lisp file
2014-11-02 16:52:43 +09:00
328879638b
fix job::wait-for-next-job to properly return the next available job
2014-11-02 16:52:43 +09:00
9a32457848
Change add-hook's semantic and export functions to register modules
2014-11-02 16:52:43 +09:00
c9b3877f64
Add support for quaternions in maths module and fix various compiling problems
2014-11-02 16:52:43 +09:00
61f963cb3d
Move the optimize declaim to be the first form evaluated when compiling
2014-11-02 16:52:43 +09:00
ad0f6a0eb8
Fix the clocking system and add an fps counter
2014-11-02 16:52:43 +09:00
e80c9ce69a
Add unit tests for shader to glsl compiling
2014-11-02 16:52:43 +09:00
f5a324bf4e
Add a compile-program function to compile and link programs into opengl
...
Compile all the defined shaders and programs at startup
Catch every errors and provide some restarts after properly cleaning up
half-way compiled stuffs
2014-11-02 16:52:43 +09:00
a79a06ef00
Add a facility to create shaders from lisp code
...
For now, only the global variables are generated by lisp code. The code
of the main function is specified as is in a string.
2014-11-02 16:52:43 +09:00
65d2d5d248
Add a package for utilities regarding opengl
...
Currently supported version
gl centric assert and restart macro
2014-11-02 16:52:38 +09:00
b8579526c0
Always call the finalize function when returning from the main loop
2014-09-30 16:07:56 +09:00
d5d0aefbbd
Add two utility functions to safely get a list or a single element out of a variable.
2014-09-19 17:17:58 +09:00
4e544af6fc
Add two of On Lisp's utility functions: group and once-only
2014-09-19 17:17:25 +09:00
aec779ac7b
TODO: Add a render module (incomplete)
2014-09-17 08:37:29 +02:00
563bd7f0f9
Allow load-file function to specify the buffer's type
2014-09-17 08:35:34 +02:00
7eaca6a359
Add helpers to retrieve command line arguments
2014-09-17 08:34:28 +02:00
070f26270e
Add a geometry file to the maths module
2014-08-17 21:32:19 +09:00
e47f9c7c05
Add simple maths functions
...
lerp, clamp, deg-to-rad and rad-to-deg
2014-08-17 21:31:37 +09:00
3f317bb1da
Add unit tests for matrices
2014-08-17 21:31:37 +09:00
04544e9742
Add specialized matrix types for float matrices
2014-08-17 21:31:37 +09:00
a2b8b9da8c
Generic matrix submodule for the maths module
...
Like the vector submodule, it implements + - * operations for matrix, scalar and
vector where it makes sense but don't try yet to be efficient.
There is also matrix constructors for null and identity matrices and
row, col and diag subsets functions.
2014-08-17 21:31:16 +09:00
c3c94fb9b2
Add unit tests for maths module (vectors)
2014-08-17 21:30:51 +09:00
7731809a8a
Add specialized vector types for float vectors
2014-08-17 21:30:50 +09:00
48d6456f0e
Maths module with a generic vector submodule.
...
Simple vector and scalar operations are supported like + - * / but
without any optimization whatsoever to keep it generic and simple for now.
A swizzle function to get a new vector out of a subset of the original
vector's attributes is also added.
A lengthsq and length function is also provided.
2014-08-17 21:30:08 +09:00
ac95e5b186
Define module's hooks with defparameter
...
When I need to recompile everything, the hooks should be emptied out.
2014-08-17 12:06:05 +09:00
8107c9b76c
Reimplemented the job system using a waitqueue
...
Job threads now wait on the waitqueue for new jobs to arrive
2014-08-17 12:06:05 +09:00
8584d5ea91
Add wrapper over sbcl's implementation of waitqueue
2014-08-14 16:43:43 +09:00
11f65bdb09
Move swank related code to a new debug module
2014-08-14 16:43:07 +09:00