Commit graph

77 commits

Author SHA1 Message Date
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
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